From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============6675051685074740330==" MIME-Version: 1.0 From: Cao, Gang Subject: Re: [SPDK] About per client QoS (IOPS rate limiting) Date: Sat, 14 Apr 2018 01:51:18 +0000 Message-ID: In-Reply-To: 82C9F782B054C94B9FC04A331649C77AA6F28F30@fmsmsx104.amr.corp.intel.com List-ID: To: spdk@lists.01.org --===============6675051685074740330== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable For the outstanding three (passthru) vbdev related patches, the first two i= s for the RPC method. The very first one is to have a common function to su= pport the later RPC call. The last one may have some relationship to QoS th= rough the support of vbdev on shared bdev (1 read/write vbdev and N-1 read-= only vbdev). https://review.gerrithub.io/#/c/406888/ vbdev: update and have a create= _passthru_disk function https://review.gerrithub.io/#/c/406891/ vbdev: add the construct_passth= ru_bdev RPC method https://review.gerrithub.io/#/c/406977/ vbdev: make the passthru vbdev = share the same underlying bdev As mentioned, the QoS is implemented in the common way and on the common bd= ev, so there is no direct changes to have QoS stuff on the vbdev here. Thanks, Gang From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Luse, Paul E Sent: Friday, April 13, 2018 10:49 PM To: Storage Performance Development Kit Subject: Re: [SPDK] About per client QoS (IOPS rate limiting) Yeah I was about to add=E2=80=A6 from the patches I looked at so far there = was no QoS in them, they just add RPC support which I think is very good fo= r the example. I haven=E2=80=99t looked in the last two days, but what spe= cific functionality is required in the vbdev module for QoS, from the answe= r to my question below it didn=E2=80=99t sound like there was anything. Thx Paul From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Cao, Gang Sent: Friday, April 13, 2018 1:40 AM To: Storage Performance Development Kit > Subject: Re: [SPDK] About per client QoS (IOPS rate limiting) Sounds good to me. Another question is that do we consider to add the RPC support to the =E2= =80=9Cexample=E2=80=9D module as the example on using RPC to construct the = vbdev? Or just leave it in the current state. Thanks, Gang From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Harris, James R Sent: Friday, April 13, 2018 3:52 AM To: Storage Performance Development Kit > Subject: Re: [SPDK] About per client QoS (IOPS rate limiting) Had an OOB chat with Nate on this =E2=80=93 what if we rename Paul=E2=80=99= s module to =E2=80=9Cexample=E2=80=9D, and reappropriate the =E2=80=9Cpasst= hru=E2=80=9D name for this new module that we are proposing? -Jim From: James Harris > Date: Thursday, April 12, 2018 at 11:11 AM To: Storage Performance Development Kit > Subject: Re: [SPDK] About per client QoS (IOPS rate limiting) I agree that this should probably go into a new vbdev module. We do want t= o keep the existing pass-through module as the example which is as simple a= s possible. Then if we find we need other changes to support Gang=E2=80=99= s per-client use case, we don=E2=80=99t have to worry about further complic= ating the example. The question is then what to name it. I don=E2=80=99t think =E2=80=9Cqos= =E2=80=9D is the best name =E2=80=93 since this module isn=E2=80=99t actual= ly doing any QoS work =E2=80=93 it just enables per-client QoS. All of the= QoS work is done in the common bdev layer =E2=80=93 not a bdev module. Ma= ybe something along the lines of =E2=80=9Cshared_passthru=E2=80=9D? I don= =E2=80=99t particularly care for that name either =E2=80=93 if anyone has a= nother idea, please advise. This new module can also utilize the spdk_bdev_part API to significantly si= mplify the code. Paul purposely did not use spdk_bdev_part in the passthru= example because he wanted to explicitly show how everything should be impl= emented in the example bdev module itself. But for this module, since it= =E2=80=99s not an example module, we don=E2=80=99t have that same concern. -Jim From: SPDK = > on behalf of "Kariuki, John K" > Reply-To: Storage Performance Development Kit > Date: Thursday, April 12, 2018 at 10:01 AM To: Storage Performance Development Kit > Subject: Re: [SPDK] About per client QoS (IOPS rate limiting) Gang/Paul Does this functionality belong in the passthru bdev or should it be impleme= nted in another vbdev called something like =E2=80=9Cqos=E2=80=9D? My under= standing of the passthru bdev is that it=E2=80=99s a template that anyone l= ooking to build a vbdev can use as a starting point. It has all the functio= ns needed to create an SPDK module stub out so that someone can pick it up,= make a copy and a few modifications and then they are off to the races imp= lementing their new virtual bdev From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Cao, Gang Sent: Tuesday, April 10, 2018 6:05 PM To: Storage Performance Development Kit > Subject: Re: [SPDK] About per client QoS (IOPS rate limiting) Yes. It=E2=80=99s a good extension to couple with the vbdev and bdev to mee= t the client=E2=80=99s QoS goal. For a client, from my understanding, a =E2= =80=9Cdevice=E2=80=9D will always be linked through its own specific =E2=80= =9Cconnection=E2=80=9D. The per client (or the per connection) QoS can be a= lso achieved by the per =E2=80=9Cdevice=E2=80=9D. The other comment is that to move this QoS rate limiting from the client si= de to the target side. Client can has its own QoS for the connection before= submitting I/Os and with this work, it can also let the target side to do = the similar thing and may not need a QoS at client side. Thanks, Gang From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Luse, Paul E Sent: Tuesday, April 10, 2018 11:56 PM To: Storage Performance Development Kit > Subject: Re: [SPDK] About per client QoS (IOPS rate limiting) Hi Gang, This is pretty cool. So essentially the PT vbdev is just a per-client hook= for QoS? Thx Paul From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Cao, Gang Sent: Monday, April 9, 2018 9:03 PM To: Storage Performance Development Kit > Subject: [SPDK] About per client QoS (IOPS rate limiting) Hi all, There has been some work done to have SPDK support the QoS per bdev which m= eans that each bdev has its assigned IOPS rate limiting. This QoS functiona= lity is below the storage protocols like NVMe-oF, iSCSI and so on. At the time of last PRC SPDK summit, there are some questions on the per cl= ient QoS (i.e., the NVMe-oF iniator / host) besides the per bdev QoS. Each = client like NVMe-oF initiator can see its own IOPS rate limiting not matter= whether the connected device is exclusive or shared at the target side. Based on Paul=E2=80=99s great stuff of the Passthru vbdev, I=E2=80=99ve upd= ated through below three patches to achieve the per client QoS. Each client= sees its own passthru vbdev and QoS assigned on this vbdev. These vbdev sh= ares the same bdev. Currently it only supports shareable and read only vbde= v on same bdev. https://review.gerrithub.io/#/c/406888/ vbdev: update and have a create= _passthru_disk function https://review.gerrithub.io/#/c/406891/ vbdev: add the construct_passth= ru_bdev RPC method https://review.gerrithub.io/#/c/406977/ vbdev: make the passthru vbdev = share the same underlying bdev The possible usage as following: [Take NVMe-oF target as example] 1. In the nvmf.conf file, # Configure the Passthru vbdev on same bdev like Malloc0 [Passthru] PT Malloc0 PT0 PT Malloc0 PT1 # The subsystem is configured with shareable bdev by Passthru vbdevs [Subsystem2] NQN nqn.2016-06.io.spdk:cnode2 Listen RDMA 192.168.2.21:4420 AllowAnyHost No Host nqn.2016-06.io.spdk:init SN SPDK00000000000002 Namespace PT0 >>>> This can be connected by one client Namespace PT1 >>>> This can be connected by another client # Assign different QoS IOPS limiting on Passthru vbdevs [QoS] Limit_IOPS PT0 20000 Limit_IOPS PT1 30000 2. Use RPC method to add the Passthru vbdev at runtime a. python ./scripts/rpc.py construct_passthru_bdev Malloc0 PT3 b. python ./scripts/rpc.py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode2= PT3 c. python ./scripts/rpc.py enable_bdev_qos PT3 20000 If there is any concern or comment, please feel free to let me know. Thanks, Gang --===============6675051685074740330== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6 5a6L5L2TOw0KCXBhbm9zZS0xOjIgMSA2IDAgMyAxIDEgMSAxIDE7fQ0KQGZvbnQtZmFjZQ0KCXtm b250LWZhbWlseToiQ2FtYnJpYSBNYXRoIjsNCglwYW5vc2UtMToyIDQgNSAzIDUgNCA2IDMgMiA0 O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6Q2FsaWJyaTsNCglwYW5vc2UtMToyIDE1IDUg MiAyIDIgNCAzIDIgNDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OiJcQOWui+S9kyI7DQoJ cGFub3NlLTE6MiAxIDYgMCAzIDEgMSAxIDEgMTt9DQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0K cC5Nc29Ob3JtYWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbA0KCXttYXJnaW46MGNtOw0K CW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCgl0ZXh0LWFsaWduOmp1c3RpZnk7DQoJdGV4dC1qdXN0 aWZ5OmludGVyLWlkZW9ncmFwaDsNCglmb250LXNpemU6MTAuNXB0Ow0KCWZvbnQtZmFtaWx5OiJD YWxpYnJpIixzYW5zLXNlcmlmO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0 eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOiMwNTYzQzE7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVy bGluZTt9DQphOnZpc2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxl LXByaW9yaXR5Ojk5Ow0KCWNvbG9yOiM5NTRGNzI7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGlu ZTt9DQpzcGFuLkVtYWlsU3R5bGUxNw0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbDsNCglmb250 LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCgljb2xvcjp3aW5kb3d0ZXh0O30NCnNwYW4u RW1haWxTdHlsZTE4DQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsOw0KCWZvbnQtZmFtaWx5OiJD YWxpYnJpIixzYW5zLXNlcmlmOw0KCWNvbG9yOiMxRjQ5N0Q7fQ0Kc3Bhbi5FbWFpbFN0eWxlMTkN Cgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWw7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMt c2VyaWY7DQoJY29sb3I6IzFGNDk3RDt9DQpzcGFuLkVtYWlsU3R5bGUyMA0KCXttc28tc3R5bGUt dHlwZTpwZXJzb25hbDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCgljb2xv cjojMUY0OTdEO30NCnNwYW4uRW1haWxTdHlsZTIxDQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFs Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmOw0KCWNvbG9yOndpbmRvd3RleHQ7 fQ0Kc3Bhbi5FbWFpbFN0eWxlMjINCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWw7DQoJZm9udC1m YW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7DQoJY29sb3I6d2luZG93dGV4dDt9DQpzcGFuLkVt YWlsU3R5bGUyMw0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbDsNCglmb250LWZhbWlseToiQ2Fs aWJyaSIsc2Fucy1zZXJpZjsNCgljb2xvcjojMUY0OTdEO30NCnNwYW4uRW1haWxTdHlsZTI0DQoJ e21zby1zdHlsZS10eXBlOnBlcnNvbmFsOw0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNl cmlmOw0KCWNvbG9yOiMxRjQ5N0Q7fQ0Kc3Bhbi5FbWFpbFN0eWxlMjUNCgl7bXNvLXN0eWxlLXR5 cGU6cGVyc29uYWwtcmVwbHk7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7DQoJ Y29sb3I6IzFGNDk3RDt9DQouTXNvQ2hwRGVmYXVsdA0KCXttc28tc3R5bGUtdHlwZTpleHBvcnQt b25seTsNCglmb250LXNpemU6MTAuMHB0O30NCkBwYWdlIFdvcmRTZWN0aW9uMQ0KCXtzaXplOjYx Mi4wcHQgNzkyLjBwdDsNCgltYXJnaW46NzIuMHB0IDkwLjBwdCA3Mi4wcHQgOTAuMHB0O30NCmRp di5Xb3JkU2VjdGlvbjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLS0+PC9zdHlsZT48IS0tW2lm IGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVsdHMgdjpleHQ9ImVkaXQiIHNwaWRtYXg9 IjEwMjYiIC8+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxv OnNoYXBlbGF5b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlkbWFwIHY6ZXh0PSJlZGl0IiBkYXRhPSIx IiAvPg0KPC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlmXS0tPg0KPC9oZWFkPg0KPGJvZHkg Ymdjb2xvcj0id2hpdGUiIGxhbmc9IlpILUNOIiBsaW5rPSIjMDU2M0MxIiB2bGluaz0iIzk1NEY3 MiI+DQo8ZGl2IGNsYXNzPSJXb3JkU2VjdGlvbjEiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw YW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJjb2xvcjojMUY0OTdEIj5Gb3IgdGhlIG91dHN0YW5kaW5n IHRocmVlIChwYXNzdGhydSkgdmJkZXYgcmVsYXRlZCBwYXRjaGVzLCB0aGUgZmlyc3QgdHdvIGlz IGZvciB0aGUgUlBDIG1ldGhvZC4gVGhlIHZlcnkgZmlyc3Qgb25lIGlzIHRvIGhhdmUgYSBjb21t b24gZnVuY3Rpb24gdG8gc3VwcG9ydCB0aGUgbGF0ZXIgUlBDIGNhbGwuIFRoZSBsYXN0IG9uZSBt YXkgaGF2ZQ0KIHNvbWUgcmVsYXRpb25zaGlwIHRvIFFvUyB0aHJvdWdoIHRoZSBzdXBwb3J0IG9m IHZiZGV2IG9uIHNoYXJlZCBiZGV2ICgxIHJlYWQvd3JpdGUgdmJkZXYgYW5kIE4tMSByZWFkLW9u bHkgdmJkZXYpLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz cGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48 L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjcyLjBw dCI+PHNwYW4gbGFuZz0iRU4tVVMiPjxhIGhyZWY9Imh0dHBzOi8vcmV2aWV3LmdlcnJpdGh1Yi5p by8jL2MvNDA2ODg4LyI+aHR0cHM6Ly9yZXZpZXcuZ2Vycml0aHViLmlvLyMvYy80MDY4ODgvPC9h PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB2YmRldjogdXBkYXRlIGFuZCBoYXZlIGEgY3JlYXRl X3Bhc3N0aHJ1X2Rpc2sgZnVuY3Rpb248bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i TXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6NzIuMHB0Ij48c3BhbiBsYW5nPSJFTi1VUyI+ PGEgaHJlZj0iaHR0cHM6Ly9yZXZpZXcuZ2Vycml0aHViLmlvLyMvYy80MDY4OTEvIj5odHRwczov L3Jldmlldy5nZXJyaXRodWIuaW8vIy9jLzQwNjg5MS88L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7IHZiZGV2OiBhZGQgdGhlIGNvbnN0cnVjdF9wYXNzdGhydV9iZGV2IFJQQyBtZXRob2Q8bzpw PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxl ZnQ6NzIuMHB0Ij48c3BhbiBsYW5nPSJFTi1VUyI+PGEgaHJlZj0iaHR0cHM6Ly9yZXZpZXcuZ2Vy cml0aHViLmlvLyMvYy80MDY5NzcvIj5odHRwczovL3Jldmlldy5nZXJyaXRodWIuaW8vIy9jLzQw Njk3Ny88L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHZiZGV2OiBtYWtlIHRoZSBwYXNzdGhy dSB2YmRldiBzaGFyZSB0aGUgc2FtZSB1bmRlcmx5aW5nIGJkZXY8bzpwPjwvbzpwPjwvc3Bhbj48 L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImNvbG9y OiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt YWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+QXMgbWVudGlvbmVk LCB0aGUgUW9TIGlzIGltcGxlbWVudGVkIGluIHRoZSBjb21tb24gd2F5IGFuZCBvbiB0aGUgY29t bW9uIGJkZXYsIHNvIHRoZXJlIGlzIG5vIGRpcmVjdCBjaGFuZ2VzIHRvIGhhdmUgUW9TIHN0dWZm IG9uIHRoZSB2YmRldiBoZXJlLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29O b3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+PG86cD4mbmJz cDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4t VVMiIHN0eWxlPSJjb2xvcjojMUY0OTdEIj5UaGFua3MsPG86cD48L286cD48L3NwYW4+PC9wPg0K PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJjb2xvcjojMUY0 OTdEIj5HYW5nPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGEg bmFtZT0iX01haWxFbmRDb21wb3NlIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImNvbG9yOiMx RjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvYT48L3A+DQo8ZGl2Pg0KPGRpdiBzdHls ZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0O3BhZGRpbmc6My4w cHQgMGNtIDBjbSAwY20iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQiIHN0eWxl PSJ0ZXh0LWFsaWduOmxlZnQiPjxhIG5hbWU9Il9fX19fcmVwbHlzZXBhcmF0b3IiPjwvYT48Yj48 c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPkZyb206PC9zcGFuPjwv Yj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPiBTUERLIFttYWls dG86c3Bkay1ib3VuY2VzQGxpc3RzLjAxLm9yZ10NCjxiPk9uIEJlaGFsZiBPZiA8L2I+THVzZSwg UGF1bCBFPGJyPg0KPGI+U2VudDo8L2I+IEZyaWRheSwgQXByaWwgMTMsIDIwMTggMTA6NDkgUE08 YnI+DQo8Yj5Ubzo8L2I+IFN0b3JhZ2UgUGVyZm9ybWFuY2UgRGV2ZWxvcG1lbnQgS2l0ICZsdDtz cGRrQGxpc3RzLjAxLm9yZyZndDs8YnI+DQo8Yj5TdWJqZWN0OjwvYj4gUmU6IFtTUERLXSBBYm91 dCBwZXIgY2xpZW50IFFvUyAoSU9QUyByYXRlIGxpbWl0aW5nKTxvOnA+PC9vOnA+PC9zcGFuPjwv cD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCIgc3R5 bGU9InRleHQtYWxpZ246bGVmdCI+PHNwYW4gbGFuZz0iRU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+ PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHls ZT0iZm9udC1zaXplOjExLjBwdDtjb2xvcjojMUY0OTdEIj5ZZWFoIEkgd2FzIGFib3V0IHRvIGFk ZOKApiBmcm9tIHRoZSBwYXRjaGVzIEkgbG9va2VkIGF0IHNvIGZhciB0aGVyZSB3YXMgbm8gUW9T IGluIHRoZW0sIHRoZXkganVzdCBhZGQgUlBDIHN1cHBvcnQgd2hpY2ggSSB0aGluayBpcyB2ZXJ5 IGdvb2QgZm9yIHRoZSBleGFtcGxlLiZuYnNwOyBJIGhhdmVu4oCZdCBsb29rZWQgaW4NCiB0aGUg bGFzdCB0d28gZGF5cywgYnV0IHdoYXQgc3BlY2lmaWMgZnVuY3Rpb25hbGl0eSBpcyByZXF1aXJl ZCBpbiB0aGUgdmJkZXYgbW9kdWxlIGZvciBRb1MsIGZyb20gdGhlIGFuc3dlciB0byBteSBxdWVz dGlvbiBiZWxvdyBpdCBkaWRu4oCZdCBzb3VuZCBsaWtlIHRoZXJlIHdhcyBhbnl0aGluZy48bzpw PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1V UyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286 cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0 eWxlPSJmb250LXNpemU6MTEuMHB0O2NvbG9yOiMxRjQ5N0QiPlRoeDxvOnA+PC9vOnA+PC9zcGFu PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9u dC1zaXplOjExLjBwdDtjb2xvcjojMUY0OTdEIj5QYXVsPG86cD48L286cD48L3NwYW4+PC9wPg0K PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6 MTEuMHB0O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxkaXY+ DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNFMUUxRTEgMS4wcHQ7 cGFkZGluZzozLjBwdCAwY20gMGNtIDBjbSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0i bGVmdCIgc3R5bGU9InRleHQtYWxpZ246bGVmdCI+PGI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxl PSJmb250LXNpemU6MTEuMHB0Ij5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4gbGFuZz0iRU4tVVMiIHN0 eWxlPSJmb250LXNpemU6MTEuMHB0Ij4gU1BESyBbPGEgaHJlZj0ibWFpbHRvOnNwZGstYm91bmNl c0BsaXN0cy4wMS5vcmciPm1haWx0bzpzcGRrLWJvdW5jZXNAbGlzdHMuMDEub3JnPC9hPl0NCjxi Pk9uIEJlaGFsZiBPZiA8L2I+Q2FvLCBHYW5nPGJyPg0KPGI+U2VudDo8L2I+IEZyaWRheSwgQXBy aWwgMTMsIDIwMTggMTo0MCBBTTxicj4NCjxiPlRvOjwvYj4gU3RvcmFnZSBQZXJmb3JtYW5jZSBE ZXZlbG9wbWVudCBLaXQgJmx0OzxhIGhyZWY9Im1haWx0bzpzcGRrQGxpc3RzLjAxLm9yZyI+c3Bk a0BsaXN0cy4wMS5vcmc8L2E+Jmd0Ozxicj4NCjxiPlN1YmplY3Q6PC9iPiBSZTogW1NQREtdIEFi b3V0IHBlciBjbGllbnQgUW9TIChJT1BTIHJhdGUgbGltaXRpbmcpPG86cD48L286cD48L3NwYW4+ PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0IiBz dHlsZT0idGV4dC1hbGlnbjpsZWZ0Ij48c3BhbiBsYW5nPSJFTi1VUyI+PG86cD4mbmJzcDs8L286 cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0 eWxlPSJjb2xvcjojMUY0OTdEIj5Tb3VuZHMgZ29vZCB0byBtZS48bzpwPjwvbzpwPjwvc3Bhbj48 L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImNvbG9y OiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt YWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+QW5vdGhlciBxdWVz dGlvbiBpcyB0aGF0IGRvIHdlIGNvbnNpZGVyIHRvIGFkZCB0aGUgUlBDIHN1cHBvcnQgdG8gdGhl IOKAnGV4YW1wbGXigJ0gbW9kdWxlIGFzIHRoZSBleGFtcGxlIG9uIHVzaW5nIFJQQyB0byBjb25z dHJ1Y3QgdGhlIHZiZGV2PzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt YWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8 L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMi IHN0eWxlPSJjb2xvcjojMUY0OTdEIj5PciBqdXN0IGxlYXZlIGl0IGluIHRoZSBjdXJyZW50IHN0 YXRlLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxh bmc9IkVOLVVTIiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+ PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJjb2xv cjojMUY0OTdEIj5UaGFua3MsPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05v cm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJjb2xvcjojMUY0OTdEIj5HYW5nPG86cD48 L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMi IHN0eWxlPSJjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8ZGl2 Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0 O3BhZGRpbmc6My4wcHQgMGNtIDBjbSAwY20iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249 ImxlZnQiIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQiPjxiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHls ZT0iZm9udC1zaXplOjExLjBwdCI+RnJvbTo8L3NwYW4+PC9iPjxzcGFuIGxhbmc9IkVOLVVTIiBz dHlsZT0iZm9udC1zaXplOjExLjBwdCI+IFNQREsgWzxhIGhyZWY9Im1haWx0bzpzcGRrLWJvdW5j ZXNAbGlzdHMuMDEub3JnIj5tYWlsdG86c3Bkay1ib3VuY2VzQGxpc3RzLjAxLm9yZzwvYT5dDQo8 Yj5PbiBCZWhhbGYgT2YgPC9iPkhhcnJpcywgSmFtZXMgUjxicj4NCjxiPlNlbnQ6PC9iPiBGcmlk YXksIEFwcmlsIDEzLCAyMDE4IDM6NTIgQU08YnI+DQo8Yj5Ubzo8L2I+IFN0b3JhZ2UgUGVyZm9y bWFuY2UgRGV2ZWxvcG1lbnQgS2l0ICZsdDs8YSBocmVmPSJtYWlsdG86c3Bka0BsaXN0cy4wMS5v cmciPnNwZGtAbGlzdHMuMDEub3JnPC9hPiZndDs8YnI+DQo8Yj5TdWJqZWN0OjwvYj4gUmU6IFtT UERLXSBBYm91dCBwZXIgY2xpZW50IFFvUyAoSU9QUyByYXRlIGxpbWl0aW5nKTxvOnA+PC9vOnA+ PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0i bGVmdCIgc3R5bGU9InRleHQtYWxpZ246bGVmdCI+PHNwYW4gbGFuZz0iRU4tVVMiPjxvOnA+Jm5i c3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVO LVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+SGFkIGFuIE9PQiBjaGF0IHdpdGggTmF0ZSBv biB0aGlzIOKAkyB3aGF0IGlmIHdlIHJlbmFtZSBQYXVs4oCZcyBtb2R1bGUgdG8g4oCcZXhhbXBs ZeKAnSwgYW5kIHJlYXBwcm9wcmlhdGUgdGhlIOKAnHBhc3N0aHJ14oCdIG5hbWUgZm9yIHRoaXMg bmV3IG1vZHVsZSB0aGF0IHdlIGFyZSBwcm9wb3Npbmc/PG86cD48L286cD48L3NwYW4+PC9wPg0K PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6 MTEuMHB0Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs Ij48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPi1KaW08bzpwPjwv bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyIg c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxw IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjEx LjBwdCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5v bmU7Ym9yZGVyLXRvcDpzb2xpZCAjQjVDNERGIDEuMHB0O3BhZGRpbmc6My4wcHQgMGNtIDBjbSAw Y20iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjM2LjBwdCI+PGI+ PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJjb2xvcjpibGFjayI+RnJvbToNCjwvc3Bhbj48L2I+ PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJjb2xvcjpibGFjayI+SmFtZXMgSGFycmlzICZsdDs8 YSBocmVmPSJtYWlsdG86amFtZXMuci5oYXJyaXNAaW50ZWwuY29tIj5qYW1lcy5yLmhhcnJpc0Bp bnRlbC5jb208L2E+Jmd0Ozxicj4NCjxiPkRhdGU6IDwvYj5UaHVyc2RheSwgQXByaWwgMTIsIDIw MTggYXQgMTE6MTEgQU08YnI+DQo8Yj5UbzogPC9iPlN0b3JhZ2UgUGVyZm9ybWFuY2UgRGV2ZWxv cG1lbnQgS2l0ICZsdDs8YSBocmVmPSJtYWlsdG86c3Bka0BsaXN0cy4wMS5vcmciPnNwZGtAbGlz dHMuMDEub3JnPC9hPiZndDs8YnI+DQo8Yj5TdWJqZWN0OiA8L2I+UmU6IFtTUERLXSBBYm91dCBw ZXIgY2xpZW50IFFvUyAoSU9QUyByYXRlIGxpbWl0aW5nKTwvc3Bhbj48c3BhbiBsYW5nPSJFTi1V UyIgc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQ7Y29sb3I6YmxhY2siPjxvOnA+PC9vOnA+PC9zcGFu PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4t bGVmdDozNi4wcHQiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7 VGltZXMgTmV3IFJvbWFuJnF1b3Q7LHNlcmlmIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+ DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDozNi4wcHQi PjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+SSBhZ3JlZSB0aGF0 IHRoaXMgc2hvdWxkIHByb2JhYmx5IGdvIGludG8gYSBuZXcgdmJkZXYgbW9kdWxlLiZuYnNwOyBX ZSBkbyB3YW50IHRvIGtlZXAgdGhlIGV4aXN0aW5nIHBhc3MtdGhyb3VnaCBtb2R1bGUgYXMgdGhl IGV4YW1wbGUgd2hpY2ggaXMgYXMgc2ltcGxlIGFzIHBvc3NpYmxlLiZuYnNwOyBUaGVuDQogaWYg d2UgZmluZCB3ZSBuZWVkIG90aGVyIGNoYW5nZXMgdG8gc3VwcG9ydCBHYW5n4oCZcyBwZXItY2xp ZW50IHVzZSBjYXNlLCB3ZSBkb27igJl0IGhhdmUgdG8gd29ycnkgYWJvdXQgZnVydGhlciBjb21w bGljYXRpbmcgdGhlIGV4YW1wbGUuPC9zcGFuPjxzcGFuIGxhbmc9IkVOLVVTIj48bzpwPjwvbzpw Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6MzYu MHB0Ij48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPiZuYnNwOzwv c3Bhbj48c3BhbiBsYW5nPSJFTi1VUyI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjM2LjBwdCI+PHNwYW4gbGFuZz0iRU4tVVMi IHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij5UaGUgcXVlc3Rpb24gaXMgdGhlbiB3aGF0IHRvIG5h bWUgaXQuJm5ic3A7IEkgZG9u4oCZdCB0aGluayDigJxxb3PigJ0gaXMgdGhlIGJlc3QgbmFtZSDi gJMgc2luY2UgdGhpcyBtb2R1bGUgaXNu4oCZdCBhY3R1YWxseSBkb2luZyBhbnkgUW9TIHdvcmsg 4oCTIGl0IGp1c3QgZW5hYmxlcyBwZXItY2xpZW50IFFvUy4mbmJzcDsNCiBBbGwgb2YgdGhlIFFv UyB3b3JrIGlzIGRvbmUgaW4gdGhlIGNvbW1vbiBiZGV2IGxheWVyIOKAkyBub3QgYSBiZGV2IG1v ZHVsZS4mbmJzcDsgTWF5YmUgc29tZXRoaW5nIGFsb25nIHRoZSBsaW5lcyBvZiDigJxzaGFyZWRf cGFzc3RocnXigJ0/Jm5ic3A7IEkgZG9u4oCZdCBwYXJ0aWN1bGFybHkgY2FyZSBmb3IgdGhhdCBu YW1lIGVpdGhlciDigJMgaWYgYW55b25lIGhhcyBhbm90aGVyIGlkZWEsIHBsZWFzZSBhZHZpc2Uu PC9zcGFuPjxzcGFuIGxhbmc9IkVOLVVTIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFz cz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6MzYuMHB0Ij48c3BhbiBsYW5nPSJFTi1V UyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPiZuYnNwOzwvc3Bhbj48c3BhbiBsYW5nPSJFTi1V UyI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1h cmdpbi1sZWZ0OjM2LjBwdCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEu MHB0Ij5UaGlzIG5ldyBtb2R1bGUgY2FuIGFsc28gdXRpbGl6ZSB0aGUgc3Bka19iZGV2X3BhcnQg QVBJIHRvIHNpZ25pZmljYW50bHkgc2ltcGxpZnkgdGhlIGNvZGUuJm5ic3A7IFBhdWwgcHVycG9z ZWx5IGRpZCBub3QgdXNlIHNwZGtfYmRldl9wYXJ0IGluIHRoZSBwYXNzdGhydSBleGFtcGxlIGJl Y2F1c2UNCiBoZSB3YW50ZWQgdG8gZXhwbGljaXRseSBzaG93IGhvdyBldmVyeXRoaW5nIHNob3Vs ZCBiZSBpbXBsZW1lbnRlZCBpbiB0aGUgZXhhbXBsZSBiZGV2IG1vZHVsZSBpdHNlbGYuJm5ic3A7 IEJ1dCBmb3IgdGhpcyBtb2R1bGUsIHNpbmNlIGl04oCZcyBub3QgYW4gZXhhbXBsZSBtb2R1bGUs IHdlIGRvbuKAmXQgaGF2ZSB0aGF0IHNhbWUgY29uY2Vybi48L3NwYW4+PHNwYW4gbGFuZz0iRU4t VVMiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt YXJnaW4tbGVmdDozNi4wcHQiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjEx LjBwdCI+Jm5ic3A7PC9zcGFuPjxzcGFuIGxhbmc9IkVOLVVTIj48bzpwPjwvbzpwPjwvc3Bhbj48 L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6MzYuMHB0Ij48c3Bh biBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPi1KaW08L3NwYW4+PHNwYW4g bGFuZz0iRU4tVVMiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi IHN0eWxlPSJtYXJnaW4tbGVmdDozNi4wcHQiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9u dC1zaXplOjExLjBwdCI+Jm5ic3A7PC9zcGFuPjxzcGFuIGxhbmc9IkVOLVVTIj48bzpwPjwvbzpw Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6MzYu MHB0Ij48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPiZuYnNwOzwv c3Bhbj48c3BhbiBsYW5nPSJFTi1VUyI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPGRpdiBzdHls ZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjQjVDNERGIDEuMHB0O3BhZGRpbmc6My4w cHQgMGNtIDBjbSAwY20iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0 OjcyLjBwdCI+PGI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJjb2xvcjpibGFjayI+RnJvbToN Cjwvc3Bhbj48L2I+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJjb2xvcjpibGFjayI+U1BESyAm bHQ7PGEgaHJlZj0ibWFpbHRvOnNwZGstYm91bmNlc0BsaXN0cy4wMS5vcmciPnNwZGstYm91bmNl c0BsaXN0cy4wMS5vcmc8L2E+Jmd0OyBvbiBiZWhhbGYgb2YgJnF1b3Q7S2FyaXVraSwgSm9obiBL JnF1b3Q7ICZsdDs8YSBocmVmPSJtYWlsdG86am9obi5rLmthcml1a2lAaW50ZWwuY29tIj5qb2hu Lmsua2FyaXVraUBpbnRlbC5jb208L2E+Jmd0Ozxicj4NCjxiPlJlcGx5LVRvOiA8L2I+U3RvcmFn ZSBQZXJmb3JtYW5jZSBEZXZlbG9wbWVudCBLaXQgJmx0OzxhIGhyZWY9Im1haWx0bzpzcGRrQGxp c3RzLjAxLm9yZyI+c3Bka0BsaXN0cy4wMS5vcmc8L2E+Jmd0Ozxicj4NCjxiPkRhdGU6IDwvYj5U aHVyc2RheSwgQXByaWwgMTIsIDIwMTggYXQgMTA6MDEgQU08YnI+DQo8Yj5UbzogPC9iPlN0b3Jh Z2UgUGVyZm9ybWFuY2UgRGV2ZWxvcG1lbnQgS2l0ICZsdDs8YSBocmVmPSJtYWlsdG86c3Bka0Bs aXN0cy4wMS5vcmciPnNwZGtAbGlzdHMuMDEub3JnPC9hPiZndDs8YnI+DQo8Yj5TdWJqZWN0OiA8 L2I+UmU6IFtTUERLXSBBYm91dCBwZXIgY2xpZW50IFFvUyAoSU9QUyByYXRlIGxpbWl0aW5nKTwv c3Bhbj48c3BhbiBsYW5nPSJFTi1VUyI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8 ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjcyLjBwdCI+PHNw YW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4m cXVvdDssc2VyaWYiPiZuYnNwOzwvc3Bhbj48c3BhbiBsYW5nPSJFTi1VUyI+PG86cD48L286cD48 L3NwYW4+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxl ZnQ6NzIuMHB0Ij48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Y29s b3I6IzFGNDk3RCI+R2FuZy9QYXVsPC9zcGFuPjxzcGFuIGxhbmc9IkVOLVVTIj48bzpwPjwvbzpw Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6NzIu MHB0Ij48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Y29sb3I6IzFG NDk3RCI+RG9lcyB0aGlzIGZ1bmN0aW9uYWxpdHkgYmVsb25nIGluIHRoZSBwYXNzdGhydSBiZGV2 IG9yIHNob3VsZCBpdCBiZSBpbXBsZW1lbnRlZCBpbiBhbm90aGVyIHZiZGV2IGNhbGxlZCBzb21l dGhpbmcgbGlrZSDigJxxb3PigJ0/IE15IHVuZGVyc3RhbmRpbmcgb2YgdGhlIHBhc3N0aHJ1DQog YmRldiBpcyB0aGF0IGl04oCZcyBhIHRlbXBsYXRlIHRoYXQgYW55b25lIGxvb2tpbmcgdG8gYnVp bGQgYSB2YmRldiBjYW4gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuIEl0IGhhcyBhbGwgdGhlIGZ1 bmN0aW9ucyBuZWVkZWQgdG8gY3JlYXRlIGFuIFNQREsgbW9kdWxlIHN0dWIgb3V0IHNvIHRoYXQg c29tZW9uZSBjYW4gcGljayBpdCB1cCwgbWFrZSBhIGNvcHkgYW5kIGEgZmV3IG1vZGlmaWNhdGlv bnMgYW5kIHRoZW4gdGhleSBhcmUgb2ZmIHRvIHRoZQ0KIHJhY2VzIGltcGxlbWVudGluZyB0aGVp ciBuZXcgdmlydHVhbCBiZGV2PC9zcGFuPjxzcGFuIGxhbmc9IkVOLVVTIj48bzpwPjwvbzpwPjwv c3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6NzIuMHB0 Ij48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Y29sb3I6IzFGNDk3 RCI+Jm5ic3A7PC9zcGFuPjxzcGFuIGxhbmc9IkVOLVVTIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+ DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjRTFFMUUx IDEuMHB0O3BhZGRpbmc6My4wcHQgMGNtIDBjbSAwY20iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg YWxpZ249ImxlZnQiIHN0eWxlPSJtYXJnaW4tbGVmdDo3Mi4wcHQ7dGV4dC1hbGlnbjpsZWZ0Ij48 Yj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPkZyb206PC9zcGFu PjwvYj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPiBTUERLIFs8 YSBocmVmPSJtYWlsdG86c3Bkay1ib3VuY2VzQGxpc3RzLjAxLm9yZyI+bWFpbHRvOnNwZGstYm91 bmNlc0BsaXN0cy4wMS5vcmc8L2E+XQ0KPGI+T24gQmVoYWxmIE9mIDwvYj5DYW8sIEdhbmc8YnI+ DQo8Yj5TZW50OjwvYj4gVHVlc2RheSwgQXByaWwgMTAsIDIwMTggNjowNSBQTTxicj4NCjxiPlRv OjwvYj4gU3RvcmFnZSBQZXJmb3JtYW5jZSBEZXZlbG9wbWVudCBLaXQgJmx0OzxhIGhyZWY9Im1h aWx0bzpzcGRrQGxpc3RzLjAxLm9yZyI+c3Bka0BsaXN0cy4wMS5vcmc8L2E+Jmd0Ozxicj4NCjxi PlN1YmplY3Q6PC9iPiBSZTogW1NQREtdIEFib3V0IHBlciBjbGllbnQgUW9TIChJT1BTIHJhdGUg bGltaXRpbmcpPC9zcGFuPjxzcGFuIGxhbmc9IkVOLVVTIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+ DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQiIHN0eWxl PSJtYXJnaW4tbGVmdDo3Mi4wcHQ7dGV4dC1hbGlnbjpsZWZ0Ij48c3BhbiBsYW5nPSJFTi1VUyI+ Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9 Im1hcmdpbi1sZWZ0OjcyLjBwdCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJjb2xvcjojMUY0 OTdEIj5ZZXMuIEl04oCZcyBhIGdvb2QgZXh0ZW5zaW9uIHRvIGNvdXBsZSB3aXRoIHRoZSB2YmRl diBhbmQgYmRldiB0byBtZWV0IHRoZSBjbGllbnTigJlzIFFvUyBnb2FsLiBGb3IgYSBjbGllbnQs IGZyb20gbXkgdW5kZXJzdGFuZGluZywgYSDigJxkZXZpY2XigJ0gd2lsbCBhbHdheXMgYmUgbGlu a2VkIHRocm91Z2gNCiBpdHMgb3duIHNwZWNpZmljIOKAnGNvbm5lY3Rpb27igJ0uIFRoZSBwZXIg Y2xpZW50IChvciB0aGUgcGVyIGNvbm5lY3Rpb24pIFFvUyBjYW4gYmUgYWxzbyBhY2hpZXZlZCBi eSB0aGUgcGVyIOKAnGRldmljZeKAnS48L3NwYW4+PHNwYW4gbGFuZz0iRU4tVVMiPjxvOnA+PC9v OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDo3 Mi4wcHQiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9z cGFuPjxzcGFuIGxhbmc9IkVOLVVTIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i TXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6NzIuMHB0Ij48c3BhbiBsYW5nPSJFTi1VUyIg c3R5bGU9ImNvbG9yOiMxRjQ5N0QiPlRoZSBvdGhlciBjb21tZW50IGlzIHRoYXQgdG8gbW92ZSB0 aGlzIFFvUyByYXRlIGxpbWl0aW5nIGZyb20gdGhlIGNsaWVudCBzaWRlIHRvIHRoZSB0YXJnZXQg c2lkZS4gQ2xpZW50IGNhbiBoYXMgaXRzIG93biBRb1MgZm9yIHRoZSBjb25uZWN0aW9uIGJlZm9y ZSBzdWJtaXR0aW5nIEkvT3MgYW5kDQogd2l0aCB0aGlzIHdvcmssIGl0IGNhbiBhbHNvIGxldCB0 aGUgdGFyZ2V0IHNpZGUgdG8gZG8gdGhlIHNpbWlsYXIgdGhpbmcgYW5kIG1heSBub3QgbmVlZCBh IFFvUyBhdCBjbGllbnQgc2lkZS48L3NwYW4+PHNwYW4gbGFuZz0iRU4tVVMiPjxvOnA+PC9vOnA+ PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDo3Mi4w cHQiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFu PjxzcGFuIGxhbmc9IkVOLVVTIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNv Tm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6NzIuMHB0Ij48c3BhbiBsYW5nPSJFTi1VUyIgc3R5 bGU9ImNvbG9yOiMxRjQ5N0QiPlRoYW5rcyw8L3NwYW4+PHNwYW4gbGFuZz0iRU4tVVMiPjxvOnA+ PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVm dDo3Mi4wcHQiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+R2FuZzwv c3Bhbj48c3BhbiBsYW5nPSJFTi1VUyI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjcyLjBwdCI+PHNwYW4gbGFuZz0iRU4tVVMi IHN0eWxlPSJjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PHNwYW4gbGFuZz0iRU4tVVMiPjxv OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3Jk ZXItdG9wOnNvbGlkICNFMUUxRTEgMS4wcHQ7cGFkZGluZzozLjBwdCAwY20gMGNtIDBjbSI+DQo8 cCBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjcyLjBw dDt0ZXh0LWFsaWduOmxlZnQiPjxiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXpl OjExLjBwdCI+RnJvbTo8L3NwYW4+PC9iPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1z aXplOjExLjBwdCI+IFNQREsgWzxhIGhyZWY9Im1haWx0bzpzcGRrLWJvdW5jZXNAbGlzdHMuMDEu b3JnIj5tYWlsdG86c3Bkay1ib3VuY2VzQGxpc3RzLjAxLm9yZzwvYT5dDQo8Yj5PbiBCZWhhbGYg T2YgPC9iPkx1c2UsIFBhdWwgRTxicj4NCjxiPlNlbnQ6PC9iPiBUdWVzZGF5LCBBcHJpbCAxMCwg MjAxOCAxMTo1NiBQTTxicj4NCjxiPlRvOjwvYj4gU3RvcmFnZSBQZXJmb3JtYW5jZSBEZXZlbG9w bWVudCBLaXQgJmx0OzxhIGhyZWY9Im1haWx0bzpzcGRrQGxpc3RzLjAxLm9yZyI+c3Bka0BsaXN0 cy4wMS5vcmc8L2E+Jmd0Ozxicj4NCjxiPlN1YmplY3Q6PC9iPiBSZTogW1NQREtdIEFib3V0IHBl ciBjbGllbnQgUW9TIChJT1BTIHJhdGUgbGltaXRpbmcpPC9zcGFuPjxzcGFuIGxhbmc9IkVOLVVT Ij48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05v cm1hbCIgYWxpZ249ImxlZnQiIHN0eWxlPSJtYXJnaW4tbGVmdDo3Mi4wcHQ7dGV4dC1hbGlnbjps ZWZ0Ij48c3BhbiBsYW5nPSJFTi1VUyI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAg Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjcyLjBwdCI+PHNwYW4gbGFuZz0i RU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2NvbG9yOiMxRjQ5N0QiPkhpIEdhbmcsPC9z cGFuPjxzcGFuIGxhbmc9IkVOLVVTIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i TXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6NzIuMHB0Ij48c3BhbiBsYW5nPSJFTi1VUyIg c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxzcGFu IGxhbmc9IkVOLVVTIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs IiBzdHlsZT0ibWFyZ2luLWxlZnQ6NzIuMHB0Ij48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZv bnQtc2l6ZToxMS4wcHQ7Y29sb3I6IzFGNDk3RCI+VGhpcyBpcyBwcmV0dHkgY29vbC4mbmJzcDsg U28gZXNzZW50aWFsbHkgdGhlIFBUIHZiZGV2IGlzIGp1c3QgYSBwZXItY2xpZW50IGhvb2sgZm9y IFFvUz88L3NwYW4+PHNwYW4gbGFuZz0iRU4tVVMiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxw IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDo3Mi4wcHQiPjxzcGFuIGxhbmc9 IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3Nw YW4+PHNwYW4gbGFuZz0iRU4tVVMiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN c29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDo3Mi4wcHQiPjxzcGFuIGxhbmc9IkVOLVVTIiBz dHlsZT0iZm9udC1zaXplOjExLjBwdDtjb2xvcjojMUY0OTdEIj5UaHg8L3NwYW4+PHNwYW4gbGFu Zz0iRU4tVVMiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0 eWxlPSJtYXJnaW4tbGVmdDo3Mi4wcHQiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1z aXplOjExLjBwdDtjb2xvcjojMUY0OTdEIj5QYXVsPC9zcGFuPjxzcGFuIGxhbmc9IkVOLVVTIj48 bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2lu LWxlZnQ6NzIuMHB0Ij48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7 Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxzcGFuIGxhbmc9IkVOLVVTIj48bzpwPjwvbzpw Pjwvc3Bhbj48L3A+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpz b2xpZCAjRTFFMUUxIDEuMHB0O3BhZGRpbmc6My4wcHQgMGNtIDBjbSAwY20iPg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQiIHN0eWxlPSJtYXJnaW4tbGVmdDo3Mi4wcHQ7dGV4dC1h bGlnbjpsZWZ0Ij48Yj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQi PkZyb206PC9zcGFuPjwvYj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtc2l6ZToxMS4w cHQiPiBTUERLIFs8YSBocmVmPSJtYWlsdG86c3Bkay1ib3VuY2VzQGxpc3RzLjAxLm9yZyI+bWFp bHRvOnNwZGstYm91bmNlc0BsaXN0cy4wMS5vcmc8L2E+XQ0KPGI+T24gQmVoYWxmIE9mIDwvYj5D YW8sIEdhbmc8YnI+DQo8Yj5TZW50OjwvYj4gTW9uZGF5LCBBcHJpbCA5LCAyMDE4IDk6MDMgUE08 YnI+DQo8Yj5Ubzo8L2I+IFN0b3JhZ2UgUGVyZm9ybWFuY2UgRGV2ZWxvcG1lbnQgS2l0ICZsdDs8 YSBocmVmPSJtYWlsdG86c3Bka0BsaXN0cy4wMS5vcmciPnNwZGtAbGlzdHMuMDEub3JnPC9hPiZn dDs8YnI+DQo8Yj5TdWJqZWN0OjwvYj4gW1NQREtdIEFib3V0IHBlciBjbGllbnQgUW9TIChJT1BT IHJhdGUgbGltaXRpbmcpPC9zcGFuPjxzcGFuIGxhbmc9IkVOLVVTIj48bzpwPjwvbzpwPjwvc3Bh bj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQi IHN0eWxlPSJtYXJnaW4tbGVmdDo3Mi4wcHQ7dGV4dC1hbGlnbjpsZWZ0Ij48c3BhbiBsYW5nPSJF Ti1VUyI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg c3R5bGU9Im1hcmdpbi1sZWZ0OjcyLjBwdCI+PHNwYW4gbGFuZz0iRU4tVVMiPkhpIGFsbCw8bzpw PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxl ZnQ6NzIuMHB0Ij48c3BhbiBsYW5nPSJFTi1VUyI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9w Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjcyLjBwdCI+PHNwYW4g bGFuZz0iRU4tVVMiPlRoZXJlIGhhcyBiZWVuIHNvbWUgd29yayBkb25lIHRvIGhhdmUgU1BESyBz dXBwb3J0IHRoZSBRb1MgcGVyIGJkZXYgd2hpY2ggbWVhbnMgdGhhdCBlYWNoIGJkZXYgaGFzIGl0 cyBhc3NpZ25lZCBJT1BTIHJhdGUgbGltaXRpbmcuIFRoaXMgUW9TIGZ1bmN0aW9uYWxpdHkgaXMg YmVsb3cgdGhlIHN0b3JhZ2UgcHJvdG9jb2xzIGxpa2UNCiBOVk1lLW9GLCBpU0NTSSBhbmQgc28g b24uPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1h cmdpbi1sZWZ0OjcyLjBwdCI+PHNwYW4gbGFuZz0iRU4tVVMiPiZuYnNwOzxvOnA+PC9vOnA+PC9z cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDo3Mi4wcHQi PjxzcGFuIGxhbmc9IkVOLVVTIj5BdCB0aGUgdGltZSBvZiBsYXN0IFBSQyBTUERLIHN1bW1pdCwg dGhlcmUgYXJlIHNvbWUgcXVlc3Rpb25zIG9uIHRoZSBwZXIgY2xpZW50IFFvUyAoaS5lLiwgdGhl IE5WTWUtb0YgaW5pYXRvciAvIGhvc3QpIGJlc2lkZXMgdGhlIHBlciBiZGV2IFFvUy4gRWFjaCBj bGllbnQgbGlrZSBOVk1lLW9GIGluaXRpYXRvciBjYW4gc2VlIGl0cw0KIG93biBJT1BTIHJhdGUg bGltaXRpbmcgbm90IG1hdHRlciB3aGV0aGVyIHRoZSBjb25uZWN0ZWQgZGV2aWNlIGlzIGV4Y2x1 c2l2ZSBvciBzaGFyZWQgYXQgdGhlIHRhcmdldCBzaWRlLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDo3Mi4wcHQiPjxzcGFuIGxh bmc9IkVOLVVTIj4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y bWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6NzIuMHB0Ij48c3BhbiBsYW5nPSJFTi1VUyI+QmFzZWQg b24gUGF1bOKAmXMgZ3JlYXQgc3R1ZmYgb2YgdGhlIFBhc3N0aHJ1IHZiZGV2LCBJ4oCZdmUgdXBk YXRlZCB0aHJvdWdoIGJlbG93IHRocmVlIHBhdGNoZXMgdG8gYWNoaWV2ZSB0aGUgcGVyIGNsaWVu dCBRb1MuIEVhY2ggY2xpZW50IHNlZXMgaXRzIG93biBwYXNzdGhydSB2YmRldiBhbmQgUW9TIGFz c2lnbmVkIG9uIHRoaXMgdmJkZXYuDQogVGhlc2UgdmJkZXYgc2hhcmVzIHRoZSBzYW1lIGJkZXYu IEN1cnJlbnRseSBpdCBvbmx5IHN1cHBvcnRzIHNoYXJlYWJsZSBhbmQgcmVhZCBvbmx5IHZiZGV2 IG9uIHNhbWUgYmRldi48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs IiBzdHlsZT0ibWFyZ2luLWxlZnQ6NzIuMHB0Ij48c3BhbiBsYW5nPSJFTi1VUyI+Jm5ic3A7PG86 cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1s ZWZ0OjcyLjBwdCI+PHNwYW4gbGFuZz0iRU4tVVMiPjxhIGhyZWY9Imh0dHBzOi8vcmV2aWV3Lmdl cnJpdGh1Yi5pby8jL2MvNDA2ODg4LyI+aHR0cHM6Ly9yZXZpZXcuZ2Vycml0aHViLmlvLyMvYy80 MDY4ODgvPC9hPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB2YmRldjogdXBkYXRlIGFuZCBoYXZl IGEgY3JlYXRlX3Bhc3N0aHJ1X2Rpc2sgZnVuY3Rpb248bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8 cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6NzIuMHB0Ij48c3BhbiBsYW5n PSJFTi1VUyI+PGEgaHJlZj0iaHR0cHM6Ly9yZXZpZXcuZ2Vycml0aHViLmlvLyMvYy80MDY4OTEv Ij5odHRwczovL3Jldmlldy5nZXJyaXRodWIuaW8vIy9jLzQwNjg5MS88L2E+Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7IHZiZGV2OiBhZGQgdGhlIGNvbnN0cnVjdF9wYXNzdGhydV9iZGV2IFJQQyBt ZXRob2Q8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i bWFyZ2luLWxlZnQ6NzIuMHB0Ij48c3BhbiBsYW5nPSJFTi1VUyI+PGEgaHJlZj0iaHR0cHM6Ly9y ZXZpZXcuZ2Vycml0aHViLmlvLyMvYy80MDY5NzcvIj5odHRwczovL3Jldmlldy5nZXJyaXRodWIu aW8vIy9jLzQwNjk3Ny88L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHZiZGV2OiBtYWtlIHRo ZSBwYXNzdGhydSB2YmRldiBzaGFyZSB0aGUgc2FtZSB1bmRlcmx5aW5nIGJkZXY8bzpwPjwvbzpw Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6NzIu MHB0Ij48c3BhbiBsYW5nPSJFTi1VUyI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAg Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjcyLjBwdCI+PHNwYW4gbGFuZz0i RU4tVVMiPlRoZSBwb3NzaWJsZSB1c2FnZSBhcyBmb2xsb3dpbmc6PG86cD48L286cD48L3NwYW4+ PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjcyLjBwdCI+PHNw YW4gbGFuZz0iRU4tVVMiPltUYWtlIE5WTWUtb0YgdGFyZ2V0IGFzIGV4YW1wbGVdPG86cD48L286 cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0Ojcy LjBwdCI+PHNwYW4gbGFuZz0iRU4tVVMiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxw IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDo3Mi4wcHQiPjxzcGFuIGxhbmc9 IkVOLVVTIj4xLiZuYnNwOyBJbiB0aGUgbnZtZi5jb25mIGZpbGUsDQo8bzpwPjwvbzpwPjwvc3Bh bj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6NzIuMHB0Ij48 c3BhbiBsYW5nPSJFTi1VUyI+IyBDb25maWd1cmUgdGhlIFBhc3N0aHJ1IHZiZGV2IG9uIHNhbWUg YmRldiBsaWtlIE1hbGxvYzA8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y bWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6NzIuMHB0Ij48c3BhbiBsYW5nPSJFTi1VUyI+W1Bhc3N0 aHJ1XTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt YXJnaW4tbGVmdDo3Mi4wcHQiPjxzcGFuIGxhbmc9IkVOLVVTIj5QVCBNYWxsb2MwIFBUMDxvOnA+ PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVm dDo3Mi4wcHQiPjxzcGFuIGxhbmc9IkVOLVVTIj5QVCBNYWxsb2MwIFBUMTxvOnA+PC9vOnA+PC9z cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDo3Mi4wcHQi PjxzcGFuIGxhbmc9IkVOLVVTIj4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFz cz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6NzIuMHB0Ij48c3BhbiBsYW5nPSJFTi1V UyI+IyBUaGUgc3Vic3lzdGVtIGlzIGNvbmZpZ3VyZWQgd2l0aCBzaGFyZWFibGUgYmRldiBieSBQ YXNzdGhydSB2YmRldnM8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs IiBzdHlsZT0ibWFyZ2luLWxlZnQ6NzIuMHB0Ij48c3BhbiBsYW5nPSJFTi1VUyI+W1N1YnN5c3Rl bTJdPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1h cmdpbi1sZWZ0OjcyLjBwdCI+PHNwYW4gbGFuZz0iRU4tVVMiPiZuYnNwOyBOUU4gbnFuLjIwMTYt MDYuaW8uc3Bkazpjbm9kZTI8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y bWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6NzIuMHB0Ij48c3BhbiBsYW5nPSJFTi1VUyI+Jm5ic3A7 IExpc3RlbiBSRE1BIDE5Mi4xNjguMi4yMTo0NDIwPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAg Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjcyLjBwdCI+PHNwYW4gbGFuZz0i RU4tVVMiPiZuYnNwOyBBbGxvd0FueUhvc3QgTm88bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6NzIuMHB0Ij48c3BhbiBsYW5nPSJF Ti1VUyI+Jm5ic3A7IEhvc3QgbnFuLjIwMTYtMDYuaW8uc3Bkazppbml0PG86cD48L286cD48L3Nw YW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjcyLjBwdCI+ PHNwYW4gbGFuZz0iRU4tVVMiPiZuYnNwOyBTTiBTUERLMDAwMDAwMDAwMDAwMDI8bzpwPjwvbzpw Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6NzIu MHB0Ij48c3BhbiBsYW5nPSJFTi1VUyI+Jm5ic3A7IE5hbWVzcGFjZSBQVDAmbmJzcDsmbmJzcDsg Jmd0OyZndDsmZ3Q7Jmd0OyBUaGlzIGNhbiBiZSBjb25uZWN0ZWQgYnkgb25lIGNsaWVudDxvOnA+ PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVm dDo3Mi4wcHQiPjxzcGFuIGxhbmc9IkVOLVVTIj4mbmJzcDsgTmFtZXNwYWNlIFBUMSZuYnNwOyZu YnNwOyAmZ3Q7Jmd0OyZndDsmZ3Q7IFRoaXMgY2FuIGJlIGNvbm5lY3RlZCBieSBhbm90aGVyIGNs aWVudDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt YXJnaW4tbGVmdDo3Mi4wcHQiPjxzcGFuIGxhbmc9IkVOLVVTIj4mbmJzcDs8bzpwPjwvbzpwPjwv c3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6NzIuMHB0 Ij48c3BhbiBsYW5nPSJFTi1VUyI+IyBBc3NpZ24gZGlmZmVyZW50IFFvUyBJT1BTIGxpbWl0aW5n IG9uIFBhc3N0aHJ1IHZiZGV2czxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29O b3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDo3Mi4wcHQiPjxzcGFuIGxhbmc9IkVOLVVTIj5bUW9T XTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJn aW4tbGVmdDo3Mi4wcHQiPjxzcGFuIGxhbmc9IkVOLVVTIj5MaW1pdF9JT1BTIFBUMCAyMDAwMDxv OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4t bGVmdDo3Mi4wcHQiPjxzcGFuIGxhbmc9IkVOLVVTIj5MaW1pdF9JT1BTIFBUMSAzMDAwMDxvOnA+ PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVm dDo3Mi4wcHQiPjxzcGFuIGxhbmc9IkVOLVVTIj4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+ DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6NzIuMHB0Ij48c3BhbiBs YW5nPSJFTi1VUyI+Mi4gVXNlIFJQQyBtZXRob2QgdG8gYWRkIHRoZSBQYXNzdGhydSB2YmRldiBh dCBydW50aW1lPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5 bGU9Im1hcmdpbi1sZWZ0OjcyLjBwdCI+PHNwYW4gbGFuZz0iRU4tVVMiPmEuIHB5dGhvbiAuL3Nj cmlwdHMvcnBjLnB5IGNvbnN0cnVjdF9wYXNzdGhydV9iZGV2IE1hbGxvYzAgUFQzPG86cD48L286 cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0Ojcy LjBwdCI+PHNwYW4gbGFuZz0iRU4tVVMiPmIuIHB5dGhvbiAuL3NjcmlwdHMvcnBjLnB5IG52bWZf c3Vic3lzdGVtX2FkZF9ucyBucW4uMjAxNi0wNi5pby5zcGRrOmNub2RlMiBQVDM8bzpwPjwvbzpw Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6NzIu MHB0Ij48c3BhbiBsYW5nPSJFTi1VUyI+Yy4gcHl0aG9uIC4vc2NyaXB0cy9ycGMucHkgZW5hYmxl X2JkZXZfcW9zIFBUMyAyMDAwMDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29O b3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDo3Mi4wcHQiPjxzcGFuIGxhbmc9IkVOLVVTIj4mbmJz cDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFy Z2luLWxlZnQ6NzIuMHB0Ij48c3BhbiBsYW5nPSJFTi1VUyI+SWYgdGhlcmUgaXMgYW55IGNvbmNl cm4gb3IgY29tbWVudCwgcGxlYXNlIGZlZWwgZnJlZSB0byBsZXQgbWUga25vdy48bzpwPjwvbzpw Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibWFyZ2luLWxlZnQ6NzIu MHB0Ij48c3BhbiBsYW5nPSJFTi1VUyI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAg Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjcyLjBwdCI+PHNwYW4gbGFuZz0i RU4tVVMiPlRoYW5rcyw8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs IiBzdHlsZT0ibWFyZ2luLWxlZnQ6NzIuMHB0Ij48c3BhbiBsYW5nPSJFTi1VUyI+R2FuZzxvOnA+ PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K --===============6675051685074740330==--