From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============7011733041296491691==" MIME-Version: 1.0 From: Li Feng Subject: Re: [SPDK] How to utilize multiple threads? Date: Tue, 31 Jul 2018 15:22:24 +0800 Message-ID: In-Reply-To: FA6C2217B01E9D48A581BB486602101439A99B12@shsmsx102.ccr.corp.intel.com List-ID: To: spdk@lists.01.org --===============7011733041296491691== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Thank you, shuuhei and Ziye. Your response are so fast. The spdk_iscsi_conn_migration will schedule a reactor to handle the new connection. I have understood now. As I know, the openiscsi initiator only uses one session/connection when connecting to one target, even though it has multiple luns. So it will process IOs on the same core when they belong to the same target. Another question, would you have a plan to support SCSI PR(persistent reservation)? Thanks, Feng Li =E6=89=8B=E6=9C=BA=EF=BC=9A13401157876 Web=EF=BC=9Ahttp://www.smartx.com/ =E5=9C=B0=E5=9D=80=EF=BC=9A=E5=8C=97=E4=BA=AC=E5=B8=82=E6=B5=B7=E6=B7=80=E5= =8C=BA=E7=A7=91=E5=AD=A6=E9=99=A2=E5=8D=97=E8=B7=AF2=E5=8F=B7=E8=9E=8D=E7= =A7=91=E8=B5=84=E8=AE=AF=E4=B8=AD=E5=BF=83C=E5=BA=A7=E5=8C=97=E6=A5=BC712 2018-07-31 14:50 GMT+08:00 Yang, Ziye : > Hi Li, > > > > The acceptor is running on core 0 on default, but when the connection is > in ffp phase, it will be transferred to other reactors for connection > handling, see the code in spdk_iscsi_conn_migration in lib/iscsi/iscsi.c. > According to the code, you can see it is also related with the portal gro= up > info (cpu mask). > > > > > > Thanks. > > > > > > > > Best Regards > > Ziye Yang > > > > *From:* SPDK [mailto:spdk-bounces(a)lists.01.org] *On Behalf Of *=E6=9D= =BE=E6=9C=AC=E5=91=A8=E5=B9=B3 / > MATSUMOTO=EF=BC=8CSHUUHEI > *Sent:* Tuesday, July 31, 2018 2:06 PM > *To:* Storage Performance Development Kit > *Subject:* Re: [SPDK] How to utilize multiple threads? > > > > Hi Li, > > > > But the acceptor is only running on the core 0, right? > > Yes. > > > > But if what you see is in acceptor.c, it may be the acceptor dedicated to > check start of communication by initiator. > > > > Regardless of this, you are correct and each iSCSI connection is handled > by single CPU core because SPDK is highly efficient and lockless. > > By increasing number of iSCSI connections, all CPU cores will be used. > > > > The following by Ziye Yang is not maintained now but it will be helpful if > you read. > > https://review.gerrithub.io/#/c/spdk/spdk/+/392733/18/doc/iscsi_pg.md > > > > Thanks, > > Shuhei > ------------------------------ > > *=E5=B7=AE=E5=87=BA=E4=BA=BA**:* SPDK =E3= =81=8C Li Feng > =E3=81=AE=E4=BB=A3=E7=90=86=E3=81=A7=E9=80=81=E4=BF=A1 > *=E9=80=81=E4=BF=A1=E6=97=A5=E6=99=82**:* 2018=E5=B9=B47=E6=9C=8831=E6=97= =A5 14:32 > *=E5=AE=9B=E5=85=88**:* Storage Performance Development Kit > *=E4=BB=B6=E5=90=8D**:* [!][SPDK] How to utilize multiple threads? > > > > Hi experts, > > > > When I'm digging into SPDK iscsi source codes, I have some doubt about the > threads/reactors. > > > > > > Look at this example. > > > > Start iscsi target on core 0-7: > > ``` > > app/iscsi_tgt/iscsi_tgt -L all -d 1 -m 0xff > > ``` > > I can see 8 threads which are polling. > > > > But the acceptor is only running on the core 0, right? > > > > This means all IOs are processed on core 0, no matter how many bdevs are > connecting ? > > > > > > I can see sending NOP IN is a poller running on all reactors. But this is > not about read/write. > > > > So how to utilize the other threads to maximum the iops and throughput? > > > > > > > > Thanks in advance. > > > > > > The SmartX email address is only for business purpose. Any sent message > that is not related to the business is not authorized or permitted by > SmartX. > > =E6=9C=AC=E9=82=AE=E7=AE=B1=E4=B8=BA=E5=8C=97=E4=BA=AC=E5=BF=97=E5=87=8C= =E6=B5=B7=E7=BA=B3=E7=A7=91=E6=8A=80=E6=9C=89=E9=99=90=E5=85=AC=E5=8F=B8=EF= =BC=88SmartX=EF=BC=89=E5=B7=A5=E4=BD=9C=E9=82=AE=E7=AE=B1. =E5=A6=82=E6=9C= =AC=E9=82=AE=E7=AE=B1=E5=8F=91=E5=87=BA=E7=9A=84=E9=82=AE=E4=BB=B6=E4=B8=8E= =E5=B7=A5=E4=BD=9C=E6=97=A0=E5=85=B3,=E8=AF=A5=E9=82=AE=E4=BB=B6=E6=9C=AA= =E5=BE=97=E5=88=B0=E6=9C=AC=E5=85=AC=E5=8F=B8=E4=BB=BB=E4=BD=95=E7=9A=84=E6= =98=8E=E7=A4=BA=E6=88=96=E9=BB=98=E7=A4=BA=E7=9A=84=E6=8E=88=E6=9D=83. > > > > _______________________________________________ > SPDK mailing list > SPDK(a)lists.01.org > https://lists.01.org/mailman/listinfo/spdk > > -- = The SmartX email address is only for business purpose. Any sent message = that is not related to the business is not authorized or permitted by = SmartX. =E6=9C=AC=E9=82=AE=E7=AE=B1=E4=B8=BA=E5=8C=97=E4=BA=AC=E5=BF=97=E5=87=8C=E6= =B5=B7=E7=BA=B3=E7=A7=91=E6=8A=80=E6=9C=89=E9=99=90=E5=85=AC=E5=8F=B8=EF=BC= =88SmartX=EF=BC=89=E5=B7=A5=E4=BD=9C=E9=82=AE=E7=AE=B1. =E5=A6=82=E6=9C=AC= =E9=82=AE=E7=AE=B1=E5=8F=91=E5=87=BA=E7=9A=84=E9=82=AE=E4=BB=B6=E4=B8=8E=E5= =B7=A5=E4=BD=9C=E6=97=A0=E5=85=B3,=E8=AF=A5=E9=82=AE=E4=BB=B6=E6=9C=AA=E5= =BE=97=E5=88=B0=E6=9C=AC=E5=85=AC=E5=8F=B8=E4=BB=BB=E4=BD=95=E7=9A=84=E6=98= =8E=E7=A4=BA=E6=88=96=E9=BB=98=E7=A4=BA=E7=9A=84=E6=8E=88=E6=9D=83. --===============7011733041296491691== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGRpdiBkaXI9Imx0ciI+PGZvbnQgY29sb3I9IiMzMzMzMzMiIGZhY2U9Im5vcm1hbCBhcmlhbCwg c2Fucy1zZXJpZiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxNnB4Ij5UaGFuayB5b3UswqBzaHV1 aGVpIGFuZCBaaXllLjwvc3Bhbj48L2ZvbnQ+PGRpdj48YnI+PC9kaXY+PGRpdj48Zm9udCBjb2xv cj0iIzMzMzMzMyIgZmFjZT0ibm9ybWFsIGFyaWFsLCBzYW5zLXNlcmlmIj48c3BhbiBzdHlsZT0i Zm9udC1zaXplOjE2cHgiPllvdXIgcmVzcG9uc2UgYXJlIHNvIGZhc3QuPC9zcGFuPjwvZm9udD48 L2Rpdj48ZGl2Pjxmb250IGNvbG9yPSIjMzMzMzMzIiBmYWNlPSJub3JtYWwgYXJpYWwsIHNhbnMt c2VyaWYiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTZweCI+VGhlIHNwZGtfaXNjc2lfY29ubl9t aWdyYXRpb24gd2lsbCBzY2hlZHVsZSBhIHJlYWN0b3IgdG8gaGFuZGxlIHRoZSBuZXcgY29ubmVj dGlvbi48L3NwYW4+PC9mb250PjwvZGl2PjxkaXY+PGZvbnQgY29sb3I9IiMzMzMzMzMiIGZhY2U9 Im5vcm1hbCBhcmlhbCwgc2Fucy1zZXJpZiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxNnB4Ij5J IGhhdmUgdW5kZXJzdG9vZCBub3cuPC9zcGFuPjwvZm9udD48L2Rpdj48ZGl2Pjxmb250IGNvbG9y PSIjMzMzMzMzIiBmYWNlPSJub3JtYWwgYXJpYWwsIHNhbnMtc2VyaWYiPjxzcGFuIHN0eWxlPSJm b250LXNpemU6MTZweCI+PHNwYW4gc3R5bGU9InRleHQtZGVjb3JhdGlvbi1zdHlsZTppbml0aWFs O3RleHQtZGVjb3JhdGlvbi1jb2xvcjppbml0aWFsO2JhY2tncm91bmQtY29sb3I6cmdiKDI1NSwy NTUsMjU1KTtmbG9hdDpub25lO2Rpc3BsYXk6aW5saW5lIj48YnI+PC9zcGFuPjwvc3Bhbj48L2Zv bnQ+PC9kaXY+PGRpdj48Zm9udCBjb2xvcj0iIzMzMzMzMyIgZmFjZT0ibm9ybWFsIGFyaWFsLCBz YW5zLXNlcmlmIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjE2cHgiPkFzIEkga25vdywgdGhlIG9w ZW5pc2NzaSBpbml0aWF0b3Igb25seSB1c2VzIG9uZSBzZXNzaW9uL2Nvbm5lY3Rpb24gd2hlbiBj b25uZWN0aW5nIHRvIG9uZSB0YXJnZXQsIGV2ZW4gdGhvdWdowqBpdCBoYXMgbXVsdGlwbGUgbHVu cy48L3NwYW4+PC9mb250PjwvZGl2PjxkaXY+PGZvbnQgY29sb3I9IiMzMzMzMzMiIGZhY2U9Im5v cm1hbCBhcmlhbCwgc2Fucy1zZXJpZiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxNnB4Ij5TbyBp dCB3aWxsIHByb2Nlc3MgSU9zIG9uIHRoZSBzYW1lIGNvcmUgd2hlbiB0aGV5IGJlbG9uZyB0byB0 aGUgc2FtZSB0YXJnZXQuwqA8L3NwYW4+PC9mb250PjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+ PGZvbnQgY29sb3I9IiMzMzMzMzMiIGZhY2U9Im5vcm1hbCBhcmlhbCwgc2Fucy1zZXJpZiI+PHNw YW4gc3R5bGU9ImZvbnQtc2l6ZToxNnB4Ij48c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjpy Z2IoMjU1LDI1NSwyNTUpO3RleHQtZGVjb3JhdGlvbi1zdHlsZTppbml0aWFsO3RleHQtZGVjb3Jh dGlvbi1jb2xvcjppbml0aWFsO2Zsb2F0Om5vbmU7ZGlzcGxheTppbmxpbmUiPjxicj48L3NwYW4+ PC9zcGFuPjwvZm9udD48L2Rpdj48ZGl2Pjxmb250IGNvbG9yPSIjMzMzMzMzIiBmYWNlPSJub3Jt YWwgYXJpYWwsIHNhbnMtc2VyaWYiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTZweCI+QW5vdGhl ciBxdWVzdGlvbiwgd291bGQgeW91IGhhdmUgYcKgcGxhbiB0byBzdXBwb3J0IFNDU0kgUFIocGVy c2lzdGVudCByZXNlcnZhdGlvbik/PC9zcGFuPjwvZm9udD48L2Rpdj48ZGl2Pjxicj48L2Rpdj48 ZGl2Pjxicj48L2Rpdj48ZGl2Pjxmb250IGNvbG9yPSIjMzMzMzMzIiBmYWNlPSJub3JtYWwgYXJp YWwsIHNhbnMtc2VyaWYiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTZweCI+PGJyPjwvc3Bhbj48 L2ZvbnQ+PGRpdj48c3BhbiBzdHlsZT0iY29sb3I6cmdiKDUxLDUxLDUxKTtmb250LWZhbWlseTom cXVvdDtub3JtYWwgYXJpYWwmcXVvdDssc2Fucy1zZXJpZjtmb250LXNpemU6MTZweDt0ZXh0LWRl Y29yYXRpb24tc3R5bGU6aW5pdGlhbDt0ZXh0LWRlY29yYXRpb24tY29sb3I6aW5pdGlhbDtmbG9h dDpub25lO2Rpc3BsYXk6aW5saW5lIj48YnI+PC9zcGFuPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYg Y2xhc3M9ImdtYWlsX2V4dHJhIj48YnIgY2xlYXI9ImFsbCI+PGRpdj48ZGl2IGNsYXNzPSJnbWFp bF9zaWduYXR1cmUiIGRhdGEtc21hcnRtYWlsPSJnbWFpbF9zaWduYXR1cmUiPjxkaXYgZGlyPSJs dHIiPjxwIHN0eWxlPSJmb250LXNpemU6MTIuOHB4Ij48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6 dGFob21hLHNhbnMtc2VyaWY7Zm9udC1zaXplOnNtYWxsIj5UaGFua3MsPC9zcGFuPjwvcD48cCBz dHlsZT0iZm9udC1zaXplOjEyLjhweCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OnRhaG9tYSxz YW5zLXNlcmlmO2ZvbnQtc2l6ZTpzbWFsbCI+RmVuZyBMaTwvc3Bhbj48L3A+PHAgc3R5bGU9ImZv bnQtc2l6ZToxMi44cHgiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTp0YWhvbWEsc2Fucy1zZXJp Zjtmb250LXNpemU6c21hbGwiPsKgwqA8L3NwYW4+PGJyPjwvcD48cCBzdHlsZT0iZm9udC1zaXpl OjEyLjhweCI+PGltZyBzcmM9Imh0dHBzOi8vZG9jcy5nb29nbGUuY29tL2Evc21hcnR4LmNvbS91 Yz9pZD0wQjZ2Xzl6LTRnVHN6UkdGQ1dWRk1TR2xzTVZFJmFtcDtleHBvcnQ9ZG93bmxvYWQiPjwv cD48cCBzdHlsZT0iZm9udC1zaXplOjEyLjhweCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi44 cHgiPuaJi+acuu+8mjEzNDAxMTU3ODc2PC9zcGFuPjwvcD48cCBzdHlsZT0iZm9udC1zaXplOjEy LjhweCI+PHNwYW4gc3R5bGU9ImNvbG9yOnJnYigwLDAsMCk7Zm9udC1zaXplOjEyLjhweCI+V2Vi 77yaPC9zcGFuPjxhIHN0eWxlPSJjb2xvcjpyZ2IoMTcsODUsMjA0KTtmb250LXNpemU6MTIuOHB4 IiBocmVmPSJodHRwOi8vd3d3LnNtYXJ0eC5jb20vIiB0YXJnZXQ9Il9ibGFuayI+aHR0cDovL3d3 dy5zbWFydHguY29tLzwvYT48YnI+PC9wPjxwIHN0eWxlPSJmb250LXNpemU6MTIuOHB4Ij7lnLDl nYDvvJrljJfkuqzluILmtbfmt4DljLrnp5HlrabpmaLljZfot68y5Y+3PHNwYW4gc3R5bGU9ImZv bnQtc2l6ZToxMi44cHgiPuiejeenkei1hOiur+S4reW/g0PluqfljJfmpbw3MTI8L3NwYW4+PC9w PjwvZGl2PjwvZGl2PjwvZGl2Pgo8YnI+PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPjIwMTgtMDct MzEgMTQ6NTAgR01UKzA4OjAwIFlhbmcsIFppeWUgPHNwYW4gZGlyPSJsdHIiPiZsdDs8YSBocmVm PSJtYWlsdG86eml5ZS55YW5nQGludGVsLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPnppeWUueWFuZ0Bp bnRlbC5jb208L2E+Jmd0Ozwvc3Bhbj46PGJyPjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90 ZSIgc3R5bGU9Im1hcmdpbjowIDAgMCAuOGV4O2JvcmRlci1sZWZ0OjFweCAjY2NjIHNvbGlkO3Bh ZGRpbmctbGVmdDoxZXgiPgoKCgoKCjxkaXYgbGFuZz0iRU4tVVMiIGxpbms9ImJsdWUiIHZsaW5r PSJwdXJwbGUiPgo8ZGl2IGNsYXNzPSJtXy05MTg4NzkzMDk5ODY5NjA5OTJXb3JkU2VjdGlvbjEi Pgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48YSBuYW1lPSJtXy05MTg4NzkzMDk5ODY5NjA5OTJfX01h aWxFbmRDb21wb3NlIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTom cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFmNDk3ZCI+SGkgTGksPHU+PC91 Pjx1PjwvdT48L3NwYW4+PC9hPjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9 ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl cmlmO2NvbG9yOiMxZjQ5N2QiPjx1PjwvdT7CoDx1PjwvdT48L3NwYW4+PC9wPgo8cCBjbGFzcz0i TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVv dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFmNDk3ZCI+VGhlIGFjY2VwdG9yIGlz IHJ1bm5pbmcgb24gY29yZSAwIG9uIGRlZmF1bHQswqAgYnV0IHdoZW4gdGhlIGNvbm5lY3Rpb24g aXMgaW4gZmZwIHBoYXNlLCBpdCB3aWxsIGJlIHRyYW5zZmVycmVkIHRvIG90aGVyIHJlYWN0b3Jz IGZvciBjb25uZWN0aW9uIGhhbmRsaW5nLCBzZWUKIHRoZSBjb2RlIGluIHNwZGtfaXNjc2lfY29u bl9taWdyYXRpb24gaW4gbGliL2lzY3NpL2lzY3NpLmMuIEFjY29yZGluZyB0byB0aGUgY29kZSwg eW91IGNhbiBzZWUgaXQgaXMgYWxzbyByZWxhdGVkIHdpdGggdGhlIHBvcnRhbCBncm91cCBpbmZv IChjcHUgbWFzaykuPHU+PC91Pjx1PjwvdT48L3NwYW4+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFs Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp JnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFmNDk3ZCI+PHU+PC91PsKgPHU+PC91Pjwvc3Bhbj48 L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2Zv bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMWY0OTdkIj48 dT48L3U+wqA8dT48L3U+PC9zcGFuPjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5 bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z LXNlcmlmO2NvbG9yOiMxZjQ5N2QiPlRoYW5rcy48dT48L3U+PHU+PC91Pjwvc3Bhbj48L3A+Cjxk aXY+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMWY0OTdkIj48 dT48L3U+wqA8dT48L3U+PC9zcGFuPjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5 bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z LXNlcmlmO2NvbG9yOiMxZjQ5N2QiPjx1PjwvdT7CoDx1PjwvdT48L3NwYW4+PC9wPgo8cCBjbGFz cz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTom cXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFmNDk3ZCI+PHU+PC91PsKgPHU+ PC91Pjwvc3Bhbj48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNp emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xv cjojMWY0OTdkIj5CZXN0IFJlZ2FyZHM8dT48L3U+PHU+PC91Pjwvc3Bhbj48L3A+CjxwIGNsYXNz PSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx dW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMWY0OTdkIj5aaXllIFlhbmcKPHU+ PC91Pjx1PjwvdT48L3NwYW4+PC9wPgo8L2Rpdj4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g c3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz YW5zLXNlcmlmO2NvbG9yOiMxZjQ5N2QiPjx1PjwvdT7CoDx1PjwvdT48L3NwYW4+PC9wPgo8ZGl2 Pgo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNlMWUxZTEgMS4wcHQ7 cGFkZGluZzozLjBwdCAwaW4gMGluIDBpbiI+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxzcGFu IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss c2Fucy1zZXJpZiI+RnJvbTo8L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0 O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+IFNQREsgW21haWx0 bzo8YSBocmVmPSJtYWlsdG86c3Bkay1ib3VuY2VzQGxpc3RzLjAxLm9yZyIgdGFyZ2V0PSJfYmxh bmsiPnNwZGstYm91bmNlc0BsaXN0cy4wMS48d2JyPm9yZzwvYT5dCjxiPk9uIEJlaGFsZiBPZiA8 L2I+PC9zcGFuPjxzcGFuIGxhbmc9IlpILUNOIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+5p2+ 5pys5ZGo5bmzPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5 OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZiI+IC8gTUFUU1VNT1RPPC9zcGFuPjxzcGFu IGxhbmc9IlpILUNOIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+77yMPC9zcGFuPjxzcGFuIHN0 eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fu cy1zZXJpZiI+U0hVVUhFSTxicj4KPGI+U2VudDo8L2I+IFR1ZXNkYXksIEp1bHkgMzEsIDIwMTgg MjowNiBQTTxicj4KPGI+VG86PC9iPiBTdG9yYWdlIFBlcmZvcm1hbmNlIERldmVsb3BtZW50IEtp dCAmbHQ7PGEgaHJlZj0ibWFpbHRvOnNwZGtAbGlzdHMuMDEub3JnIiB0YXJnZXQ9Il9ibGFuayI+ c3Bka0BsaXN0cy4wMS5vcmc8L2E+Jmd0Ozxicj4KPGI+U3ViamVjdDo8L2I+IFJlOiBbU1BES10g SG93IHRvIHV0aWxpemUgbXVsdGlwbGUgdGhyZWFkcz88dT48L3U+PHU+PC91Pjwvc3Bhbj48L3A+ CjwvZGl2Pgo8L2Rpdj48ZGl2PjxkaXYgY2xhc3M9Img1Ij4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+ PHU+PC91PsKgPHU+PC91PjwvcD4KPGRpdiBpZD0ibV8tOTE4ODc5MzA5OTg2OTYwOTkyZGl2dGFn ZGVmYXVsdHdyYXBwZXIiPgo8cD48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy aSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj5IaSBMaSw8dT48L3U+PHU+PC91Pjwvc3Bh bj48L3A+CjxwPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNh bnMtc2VyaWY7Y29sb3I6YmxhY2siPjx1PjwvdT7CoDx1PjwvdT48L3NwYW4+PC9wPgo8YmxvY2tx dW90ZSBzdHlsZT0ibWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tcmlnaHQ6MGluO21hcmdpbi1ib3R0 b206NS4wcHQiPgo8cD48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90 OyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj5CdXQgdGhlIGFjY2VwdG9yIGlzIG9ubHkgcnVubmlu ZyBvbiB0aGUgY29yZSAwLCByaWdodD88dT48L3U+PHU+PC91Pjwvc3Bhbj48L3A+CjwvYmxvY2tx dW90ZT4KPHA+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fu cy1zZXJpZjtjb2xvcjpibGFjayI+WWVzLjx1PjwvdT48dT48L3U+PC9zcGFuPjwvcD4KPHA+PHNw YW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xv cjpibGFjayI+PHU+PC91PsKgPHU+PC91Pjwvc3Bhbj48L3A+CjxwPjxzcGFuIHN0eWxlPSJmb250 LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6YmxhY2siPkJ1dCBp ZiB3aGF0IHlvdSBzZWUgaXMgaW4gYWNjZXB0b3IuYywgaXQgbWF5IGJlIHRoZSBhY2NlcHRvciBk ZWRpY2F0ZWQgdG8gY2hlY2sgc3RhcnQgb2YgY29tbXVuaWNhdGlvbiBieSBpbml0aWF0b3IuPHU+ PC91Pjx1PjwvdT48L3NwYW4+PC9wPgo8cD48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7 Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj48dT48L3U+wqA8dT48L3U+PC9z cGFuPjwvcD4KPHA+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss c2Fucy1zZXJpZjtjb2xvcjpibGFjayI+UmVnYXJkbGVzcyBvZiB0aGlzLCB5b3UgYXJlIGNvcnJl Y3QgYW5kIGVhY2ggaVNDU0kgY29ubmVjdGlvbiBpcyBoYW5kbGVkIGJ5IHNpbmdsZSBDUFUgY29y ZSBiZWNhdXNlIFNQREsgaXMgaGlnaGx5IGVmZmljaWVudCBhbmQgbG9ja2xlc3MuPHU+PC91Pjx1 PjwvdT48L3NwYW4+PC9wPgo8cD48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy aSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj5CeSBpbmNyZWFzaW5nIG51bWJlciBvZiBp U0NTSSBjb25uZWN0aW9ucywgYWxsIENQVSBjb3JlcyB3aWxsIGJlIHVzZWQuPHU+PC91Pjx1Pjwv dT48L3NwYW4+PC9wPgo8cD48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx dW90OyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj48dT48L3U+wqA8dT48L3U+PC9zcGFuPjwvcD4K PHA+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp Zjtjb2xvcjpibGFjayI+VGhlIGZvbGxvd2luZyBieSBaaXllIFlhbmcgaXMgbm90IG1haW50YWlu ZWQgbm93IGJ1dCBpdCB3aWxsIGJlIGhlbHBmdWwgaWYgeW91IHJlYWQuPHU+PC91Pjx1PjwvdT48 L3NwYW4+PC9wPgo8cD48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90 OyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj48YSBocmVmPSJodHRwczovL3Jldmlldy5nZXJyaXRo dWIuaW8vIy9jL3NwZGsvc3Bkay8rLzM5MjczMy8xOC9kb2MvaXNjc2lfcGcubWQiIGlkPSJtXy05 MTg4NzkzMDk5ODY5NjA5OTJMUGxuazIzMjEzMSIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vcmV2 aWV3LmdlcnJpdGh1Yi5pby8jLzx3YnI+Yy9zcGRrL3NwZGsvKy8zOTI3MzMvMTgvZG9jLzx3YnI+ aXNjc2lfcGcubWQ8L2E+PHU+PC91Pjx1PjwvdT48L3NwYW4+PC9wPgo8cD48c3BhbiBzdHlsZT0i Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj48 dT48L3U+wqA8dT48L3U+PC9zcGFuPjwvcD4KPGRpdj4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw YW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xv cjpibGFjayI+VGhhbmtzLDx1PjwvdT48dT48L3U+PC9zcGFuPjwvcD4KPC9kaXY+CjxkaXY+Cjxw IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjEyLjBwdCI+PHNwYW4gc3R5 bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjpibGFj ayI+U2h1aGVpPHU+PC91Pjx1PjwvdT48L3NwYW4+PC9wPgo8L2Rpdj4KPGRpdj4KPGRpdiBjbGFz cz0iTXNvTm9ybWFsIiBhbGlnbj0iY2VudGVyIiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXIiPjxz cGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29s b3I6YmxhY2siPgo8aHIgc2l6ZT0iMyIgd2lkdGg9Ijk4JSIgYWxpZ249ImNlbnRlciI+Cjwvc3Bh bj48L2Rpdj4KPGRpdiBpZD0ibV8tOTE4ODc5MzA5OTg2OTYwOTkyZGl2UnBseUZ3ZE1zZyI+Cjxw IGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxzcGFuIGxhbmc9IlpILUNOIiBzdHlsZT0iZm9udC1zaXpl OjExLjBwdDtjb2xvcjpibGFjayI+5beu5Ye65Lq6PC9zcGFuPjwvYj48Yj48c3BhbiBzdHlsZT0i Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2Vy aWY7Y29sb3I6YmxhY2siPjo8L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0 O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjpibGFjayI+ CiBTUERLICZsdDs8YSBocmVmPSJtYWlsdG86c3Bkay1ib3VuY2VzQGxpc3RzLjAxLm9yZyIgdGFy Z2V0PSJfYmxhbmsiPnNwZGstYm91bmNlc0BsaXN0cy4wMS5vcmc8L2E+Jmd0OyA8L3NwYW4+Cjxz cGFuIGxhbmc9IlpILUNOIiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtjb2xvcjpibGFjayI+44GM PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh bGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjpibGFjayI+IExpIEZlbmcgJmx0OzxhIGhyZWY9 Im1haWx0bzpmZW5nbGlAc21hcnR4LmNvbSIgdGFyZ2V0PSJfYmxhbmsiPmZlbmdsaUBzbWFydHgu Y29tPC9hPiZndDsKPC9zcGFuPjxzcGFuIGxhbmc9IlpILUNOIiBzdHlsZT0iZm9udC1zaXplOjEx LjBwdDtjb2xvcjpibGFjayI+44Gu5Luj55CG44Gn6YCB5L+hPC9zcGFuPjxzcGFuIHN0eWxlPSJm b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp Zjtjb2xvcjpibGFjayI+PGJyPgo8L3NwYW4+PGI+PHNwYW4gbGFuZz0iWkgtQ04iIHN0eWxlPSJm b250LXNpemU6MTEuMHB0O2NvbG9yOmJsYWNrIj7pgIHkv6Hml6XmmYI8L3NwYW4+PC9iPjxiPjxz cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv dDssc2Fucy1zZXJpZjtjb2xvcjpibGFjayI+Ojwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9ImZvbnQt c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2Nv bG9yOmJsYWNrIj4gMjAxODwvc3Bhbj48c3BhbiBsYW5nPSJaSC1DTiIgc3R5bGU9ImZvbnQtc2l6 ZToxMS4wcHQ7Y29sb3I6YmxhY2siPuW5tDwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6Ymxh Y2siPjc8L3NwYW4+PHNwYW4gbGFuZz0iWkgtQ04iIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Nv bG9yOmJsYWNrIj7mnIg8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj4zMTwvc3Bh bj48c3BhbiBsYW5nPSJaSC1DTiIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Y29sb3I6YmxhY2si PuaXpTwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv dDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6YmxhY2siPgogMTQ6MzI8YnI+Cjwvc3Bh bj48Yj48c3BhbiBsYW5nPSJaSC1DTiIgc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Y29sb3I6Ymxh Y2siPuWum+WFiDwvc3Bhbj48L2I+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj46PC9z cGFuPjwvYj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD YWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6YmxhY2siPiBTdG9yYWdlIFBlcmZvcm1hbmNl CiBEZXZlbG9wbWVudCBLaXQ8YnI+Cjwvc3Bhbj48Yj48c3BhbiBsYW5nPSJaSC1DTiIgc3R5bGU9 ImZvbnQtc2l6ZToxMS4wcHQ7Y29sb3I6YmxhY2siPuS7tuWQjTwvc3Bhbj48L2I+PGI+PHNwYW4g c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oyxz YW5zLXNlcmlmO2NvbG9yOmJsYWNrIj46PC9zcGFuPjwvYj48c3BhbiBzdHlsZT0iZm9udC1zaXpl OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6 YmxhY2siPiBbIV1bU1BES10KIEhvdyB0byB1dGlsaXplIG11bHRpcGxlIHRocmVhZHM/PC9zcGFu PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7 Y29sb3I6YmxhY2siPgo8dT48L3U+PHU+PC91Pjwvc3Bhbj48L3A+CjxkaXY+CjxwIGNsYXNzPSJN c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNh bnMtc2VyaWY7Y29sb3I6YmxhY2siPsKgPHU+PC91Pjx1PjwvdT48L3NwYW4+PC9wPgo8L2Rpdj4K PC9kaXY+CjxkaXY+CjxkaXY+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250 LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6YmxhY2siPkhpIGV4 cGVydHMsCjx1PjwvdT48dT48L3U+PC9zcGFuPjwvcD4KPGRpdj4KPHAgY2xhc3M9Ik1zb05vcm1h bCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJp Zjtjb2xvcjpibGFjayI+PHU+PC91PsKgPHU+PC91Pjwvc3Bhbj48L3A+CjwvZGl2Pgo8ZGl2Pgo8 cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy aSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj5XaGVuIEkmIzM5O20gZGlnZ2luZyBpbnRv IFNQREsgaXNjc2kgc291cmNlIGNvZGVzLCBJIGhhdmUgc29tZSBkb3VidCBhYm91dCB0aGUgdGhy ZWFkcy9yZWFjdG9ycy48dT48L3U+PHU+PC91Pjwvc3Bhbj48L3A+CjwvZGl2Pgo8ZGl2Pgo8cCBj bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx dW90OyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj48dT48L3U+wqA8dT48L3U+PC9zcGFuPjwvcD4K PC9kaXY+CjxkaXY+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWls eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6YmxhY2siPjx1PjwvdT7CoDx1 PjwvdT48L3NwYW4+PC9wPgo8L2Rpdj4KPGRpdj4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g c3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjpi bGFjayI+TG9vayBhdCB0aGlzIGV4YW1wbGUuPHU+PC91Pjx1PjwvdT48L3NwYW4+PC9wPgo8L2Rp dj4KPGRpdj4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZx dW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjpibGFjayI+PHU+PC91PsKgPHU+PC91 Pjwvc3Bhbj48L3A+CjwvZGl2Pgo8ZGl2Pgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls ZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNr Ij5TdGFydCBpc2NzaSB0YXJnZXQgb24gY29yZSAwLTc6PHU+PC91Pjx1PjwvdT48L3NwYW4+PC9w Pgo8L2Rpdj4KPGRpdj4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFt aWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjpibGFjayI+YGBgPHU+PC91 Pjx1PjwvdT48L3NwYW4+PC9wPgo8L2Rpdj4KPGRpdj4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw YW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xv cjpibGFjayI+YXBwL2lzY3NpX3RndC9pc2NzaV90Z3QgLUwgYWxsIC1kIDEgLW0gMHhmZjx1Pjwv dT48dT48L3U+PC9zcGFuPjwvcD4KPC9kaXY+CjxkaXY+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz cGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29s b3I6YmxhY2siPmBgYDx1PjwvdT48dT48L3U+PC9zcGFuPjwvcD4KPC9kaXY+CjxkaXY+CjxwIGNs YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1 b3Q7LHNhbnMtc2VyaWY7Y29sb3I6YmxhY2siPkkgY2FuIHNlZSA4IHRocmVhZHMgd2hpY2ggYXJl IHBvbGxpbmcuPHU+PC91Pjx1PjwvdT48L3NwYW4+PC9wPgo8L2Rpdj4KPGRpdj4KPHAgY2xhc3M9 Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss c2Fucy1zZXJpZjtjb2xvcjpibGFjayI+PHU+PC91PsKgPHU+PC91Pjwvc3Bhbj48L3A+CjwvZGl2 Pgo8ZGl2Pgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1 b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj5CdXQgdGhlIGFjY2VwdG9y IGlzIG9ubHkgcnVubmluZyBvbiB0aGUgY29yZSAwLCByaWdodD88dT48L3U+PHU+PC91Pjwvc3Bh bj48L3A+CjwvZGl2Pgo8ZGl2Pgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj48dT48 L3U+wqA8dT48L3U+PC9zcGFuPjwvcD4KPC9kaXY+CjxkaXY+CjxwIGNsYXNzPSJNc29Ob3JtYWwi PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7 Y29sb3I6YmxhY2siPlRoaXMgbWVhbnMgYWxsIElPcyBhcmUgcHJvY2Vzc2VkIG9uIGNvcmUgMCwg bm8gbWF0dGVyIGhvdyBtYW55IGJkZXZzwqBhcmUgY29ubmVjdGluZyA/PHU+PC91Pjx1PjwvdT48 L3NwYW4+PC9wPgo8L2Rpdj4KPGRpdj4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9 ImZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjpibGFjayI+ PHU+PC91PsKgPHU+PC91Pjwvc3Bhbj48L3A+CjwvZGl2Pgo8ZGl2Pgo8cCBjbGFzcz0iTXNvTm9y bWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl cmlmO2NvbG9yOmJsYWNrIj48dT48L3U+wqA8dT48L3U+PC9zcGFuPjwvcD4KPC9kaXY+CjxkaXY+ CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDYWxp YnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6YmxhY2siPkkgY2FuIHNlZSBzZW5kaW5nIE5PUCBJ TiBpcyBhIHBvbGxlciBydW5uaW5nIG9uIGFsbCByZWFjdG9ycy4gQnV0IHRoaXMgaXMgbm90IGFi b3V0IHJlYWQvd3JpdGUuPHU+PC91Pjx1PjwvdT48L3NwYW4+PC9wPgo8L2Rpdj4KPGRpdj4KPHAg Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm cXVvdDssc2Fucy1zZXJpZjtjb2xvcjpibGFjayI+PHU+PC91PsKgPHU+PC91Pjwvc3Bhbj48L3A+ CjwvZGl2Pgo8ZGl2Pgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1p bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj5TbyBob3cgdG8g dXRpbGl6ZSB0aGUgb3RoZXIgdGhyZWFkcyB0byBtYXhpbXVtIHRoZSBpb3BzIGFuZCB0aHJvdWdo cHV0Pzx1PjwvdT48dT48L3U+PC9zcGFuPjwvcD4KPC9kaXY+CjxkaXY+CjxwIGNsYXNzPSJNc29O b3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt c2VyaWY7Y29sb3I6YmxhY2siPjx1PjwvdT7CoDx1PjwvdT48L3NwYW4+PC9wPgo8L2Rpdj4KPGRp dj4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0Nh bGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjpibGFjayI+PHU+PC91PsKgPHU+PC91Pjwvc3Bh bj48L3A+CjwvZGl2Pgo8ZGl2Pgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOmJsYWNrIj48dT48 L3U+wqA8dT48L3U+PC9zcGFuPjwvcD4KPC9kaXY+CjxkaXY+CjxwIGNsYXNzPSJNc29Ob3JtYWwi PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7 Y29sb3I6YmxhY2siPlRoYW5rcyBpbiBhZHZhbmNlLjx1PjwvdT48dT48L3U+PC9zcGFuPjwvcD4K PC9kaXY+CjxkaXY+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWls eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6YmxhY2siPjx1PjwvdT7CoDx1 PjwvdT48L3NwYW4+PC9wPgo8L2Rpdj4KPC9kaXY+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu IHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6 YmxhY2siPjx1PjwvdT7CoDx1PjwvdT48L3NwYW4+PC9wPgo8ZGl2Pgo8cCBjbGFzcz0iTXNvTm9y bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlh bCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOmdyYXk7YmFja2dyb3VuZDp3aGl0ZSI+VGhlIFNtYXJ0 WCBlbWFpbCBhZGRyZXNzIGlzIG9ubHkgZm9yIGJ1c2luZXNzIHB1cnBvc2UuIEFueSBzZW50IG1l c3NhZ2UgdGhhdCBpcyBub3QgcmVsYXRlZCB0byB0aGUgYnVzaW5lc3MgaXMgbm90IGF1dGhvcml6 ZWQgb3IgcGVybWl0dGVkIGJ5IFNtYXJ0WC48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5 OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6YmxhY2siPjx1PjwvdT48dT48L3U+ PC9zcGFuPjwvcD4KPC9kaXY+CjxkaXY+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9 IlpILUNOIiBzdHlsZT0iZm9udC1zaXplOjcuNXB0O2NvbG9yOmdyYXk7YmFja2dyb3VuZDp3aGl0 ZSI+5pys6YKu566x5Li65YyX5Lqs5b+X5YeM5rW357qz56eR5oqA5pyJ6ZmQ5YWs5Y+477yIPC9z cGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6Ny41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwm cXVvdDssc2Fucy1zZXJpZjtjb2xvcjpncmF5O2JhY2tncm91bmQ6d2hpdGUiPlNtYXJ0WDwvc3Bh bj48c3BhbiBsYW5nPSJaSC1DTiIgc3R5bGU9ImZvbnQtc2l6ZTo3LjVwdDtjb2xvcjpncmF5O2Jh Y2tncm91bmQ6d2hpdGUiPu+8ieW3peS9nOmCrueusTwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1z aXplOjcuNXB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6 Z3JheTtiYWNrZ3JvdW5kOndoaXRlIj4uCjwvc3Bhbj48c3BhbiBsYW5nPSJaSC1DTiIgc3R5bGU9 ImZvbnQtc2l6ZTo3LjVwdDtjb2xvcjpncmF5O2JhY2tncm91bmQ6d2hpdGUiPuWmguacrOmCrueu seWPkeWHuueahOmCruS7tuS4juW3peS9nOaXoOWFszwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1z aXplOjcuNXB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6 Z3JheTtiYWNrZ3JvdW5kOndoaXRlIj4sPC9zcGFuPjxzcGFuIGxhbmc9IlpILUNOIiBzdHlsZT0i Zm9udC1zaXplOjcuNXB0O2NvbG9yOmdyYXk7YmFja2dyb3VuZDp3aGl0ZSI+6K+l6YKu5Lu25pyq 5b6X5Yiw5pys5YWs5Y+45Lu75L2V55qE5piO56S65oiWPHdicj7pu5jnpLrnmoTmjojmnYM8L3Nw YW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo3LjVwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZx dW90OyxzYW5zLXNlcmlmO2NvbG9yOmdyYXk7YmFja2dyb3VuZDp3aGl0ZSI+Ljwvc3Bhbj48c3Bh biBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjpi bGFjayI+PHU+PC91Pjx1PjwvdT48L3NwYW4+PC9wPgo8L2Rpdj4KPGRpdj4KPHAgY2xhc3M9Ik1z b05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMt c2VyaWY7Y29sb3I6YmxhY2siPjx1PjwvdT7CoDx1PjwvdT48L3NwYW4+PC9wPgo8L2Rpdj4KPC9k aXY+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+PC9kaXY+PC9kaXY+CjwvZGl2PgoKPGJyPl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fXzx3YnI+X19fX19fX19fX19fX19fX188YnI+ClNQREsgbWFp bGluZyBsaXN0PGJyPgo8YSBocmVmPSJtYWlsdG86U1BES0BsaXN0cy4wMS5vcmciPlNQREtAbGlz dHMuMDEub3JnPC9hPjxicj4KPGEgaHJlZj0iaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9s aXN0aW5mby9zcGRrIiByZWw9Im5vcmVmZXJyZXIiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2xp c3RzLjAxLm9yZy9tYWlsbWFuLzx3YnI+bGlzdGluZm8vc3BkazwvYT48YnI+Cjxicj48L2Jsb2Nr cXVvdGU+PC9kaXY+PGJyPjwvZGl2PgoKPGJyPgo8ZGl2IHN0eWxlPSJmb250LWZhbWlseTpBcmlh bCxIZWx2ZXRpY2Esc2Fucy1zZXJpZiI+PHNwYW4gc3R5bGU9ImNvbG9yOnJnYigxMjgsMTI4LDEy OCk7Zm9udC1zaXplOngtc21hbGw7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpIj5U aGUgU21hcnRYIGVtYWlsIGFkZHJlc3MgaXMgb25seSBmb3IgYnVzaW5lc3MgcHVycG9zZS4gQW55 IHNlbnQgbWVzc2FnZSB0aGF0IGlzIG5vdCByZWxhdGVkIHRvIHRoZSBidXNpbmVzcyBpcyBub3Qg YXV0aG9yaXplZCBvciBwZXJtaXR0ZWQgYnkgU21hcnRYLjwvc3Bhbj48L2Rpdj48ZGl2IHN0eWxl PSJmb250LWZhbWlseTpBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZiI+PGZvbnQgc2l6ZT0iMSI+ PHNwYW4gc3R5bGU9ImJhY2tncm91bmQtY29sb3I6d2hpdGU7Y29sb3I6cmdiKDEyOCwxMjgsMTI4 KSI+5pys6YKu566x5Li65YyX5Lqs5b+X5YeM5rW357qz56eR5oqA5pyJ6ZmQ5YWs5Y+477yIU21h cnRY77yJPC9zcGFuPjxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO2NvbG9yOnJn YigxMjgsMTI4LDEyOCkiPuW3peS9nOmCrueusS4g5aaC5pys6YKu566x5Y+R5Ye655qE6YKu5Lu2 5LiO5bel5L2c5peg5YWzLOivpemCruS7tuacquW+l+WIsDwvc3Bhbj48c3BhbiBzdHlsZT0iYmFj a2dyb3VuZC1jb2xvcjp3aGl0ZTtjb2xvcjpyZ2IoMTI4LDEyOCwxMjgpIj7mnKzlhazlj7jku7vk vZXnmoTmmI7npLrmiJY8d2JyPum7mOekuueahOaOiOadgzwvc3Bhbj48c3BhbiBzdHlsZT0iYmFj a2dyb3VuZC1jb2xvcjp3aGl0ZTtjb2xvcjpyZ2IoMTI4LDEyOCwxMjgpIj4uPC9zcGFuPjwvZm9u dD48L2Rpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTpBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJp ZiI+PGJyPjwvZGl2Pg== --===============7011733041296491691==--