From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============6566059526509238201==" MIME-Version: 1.0 From: Kiran Dikshit Subject: Re: [SPDK] SPDK performance benchmarking guidelines and using FIO_plugin Date: Wed, 05 Apr 2017 15:50:51 +0530 Message-ID: In-Reply-To: F3137963-211E-414C-A9B5-8714B718DB52@intel.com List-ID: To: spdk@lists.01.org --===============6566059526509238201== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Jim, = Thank you Adding the thread parameter did the trick, i am able to see the j= ob completing without errors. = So going forward we need the thread parameter in our job files, and it shou= ld be 1. = - Kiran > On 04-Apr-2017, at 9:19 PM, Harris, James R = wrote: > = >> = >> On Apr 4, 2017, at 4:25 AM, Kiran Dikshit > wrote: >> = >> Hi Jim, = >> = >> Thank you for the pointers relating to workload. Is these tests ( throug= hput test , latency test ) are done on single drives or are they done on bu= nch of drives. = > = > Hi Kiran, > = > This will depend on what you are trying to measure. Some throughput test= s measure how many I/O can be performed using a single Intel Xeon CPU core,= in which case we test with multiple SSDs to max out the CPU core. Other t= ests such as QD=3D1 latency tests are usually done using a single drive. > = >> Attached is FIO job file which i have used and getting the error. = > = > Please add thread=3D1 to your job file. A patch will be pushed shortly t= hat documents this requirement for the SPDK plugin and enforces it at runti= me with a more suitable error message. > = > -Jim > = >> = >> = >> Thank you >> Kiran >> = >>> On 31-Mar-2017, at 12:09 AM, Harris, James R wrote: >>> = >>>> = >>>> On Mar 30, 2017, at 5:43 AM, Kiran Dikshit wrote: >>>> = >>>> Hi All, >>>> = >>>> = >>>> I have 2 part question relating to performance benchmarking of the SPD= K and fio_plugin. = >>>> = >>>> 1. Is there any reference document specifying the workload types , que= ue depth and block size used for benchmarking the SPDK performance numbers. = >>>> Is there any OS level performance tuning to be done. It will be gre= at if we can get some insight on the performance testbed used. >>>> = >>>> Note : = >>>> I did find the DPDK performance optimisation guidelines https://l= ists.01.org/pipermail/spdk/2016-June/000035.html. Which is useful. = >>>> = >>> = >>> Hi Kiran, >>> = >>> Most of the tests we run for driver performance comparisons are with 4K= B random reads. This puts the most stress on the driver, since on NAND SSD= s, random read performance is typically much higher than random write perfo= rmance. For throughput tests, queue depth is typically tested at 128. For= latency tests, queue depth is typically tested at 1. >>> = >>>> = >>>> 2. I am trying fio_plugin for benchmarking the performance, the jobs = are completing with following error = >>>> = >>>> =E2=80=9Cnvme_pcie.c: 996:nvme_pcie_qpair_complete_pending_admin_reque= st: ***ERROR*** the active process (pid 6700) is not found for this control= ler.=E2=80=9D >>>> = >>>> I found that the nvme_pcie_qpair_complete_pending_admin_request()is c= hecking if the process exist, this is where the error message is coming fro= m. >>>> I am not sure how this process is getting killed even before completio= n. There is no there operation done on this system apart from running fio p= lugin. >>>> Was any similar issue seen in the past, which might be of help to get = around this error. >>> = >>> Could you post the contents of your fio job file? Note that the SPDK f= io plugin is currently limited to a single job. I would expect to see an e= rror like this if specifying multiple jobs and without -thread (meaning a s= eparate process per job). >>> = >>> Thanks, >>> = >>> -Jim >>> = >>>> = >>>> Below is my setup details = >>>> = >>>> OS : fedora 25 ( server edition ) >>>> Kernel version : 4.8.6-300 >>>> DPDK version : 6.11 >>>> = >>>> I have attached a single nvme drive of 745GB from Intel on which i am = running the FIO = >>>> = >>>> Below workaround were tried and the issue still persists not sure how = to get around this. = >>>> = >>>> workaround >>>> = >>>> 1. Tried different workloads in FIO = >>>> 2. I did detach the NVMe and attach a new NVMe drive = >>>> 3. Re-installed the DPDK , SPDK and FIO tool >>>> = >>>> Note : >>>> Following links were used to install and setup SPDK and FIO plugin >>>> https://github.com/spdk/spdk =E2=80=94> SPDK = >>>> https://github.com/spdk/spdk/tree/master/examples/nvme/fio_plugin =E2= =80=94> FIO_plugin >>>> = >>>> = >>>> Thank you >>>> Kiran >>>> _______________________________________________ >>>> SPDK mailing list >>>> SPDK(a)lists.01.org >>>> https://lists.01.org/mailman/listinfo/spdk >>> = >>> _______________________________________________ >>> SPDK mailing list >>> SPDK(a)lists.01.org >>> https://lists.01.org/mailman/listinfo/spdk >> = >> --===============6566059526509238201== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0 L2h0bWwgY2hhcnNldD11dGYtOCI+PC9oZWFkPjxib2R5IHN0eWxlPSJ3b3JkLXdyYXA6IGJyZWFr LXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJyZWFrOiBhZnRl ci13aGl0ZS1zcGFjZTsiIGNsYXNzPSIiPkhpIEppbSwmbmJzcDs8ZGl2IGNsYXNzPSIiPjxiciBj bGFzcz0iIj48L2Rpdj48ZGl2IGNsYXNzPSIiPlRoYW5rIHlvdSBBZGRpbmcgdGhlIHRocmVhZCBw YXJhbWV0ZXIgZGlkIHRoZSB0cmljaywgaSBhbSBhYmxlIHRvIHNlZSB0aGUgam9iIGNvbXBsZXRp bmcgd2l0aG91dCBlcnJvcnMuJm5ic3A7PC9kaXY+PGRpdiBjbGFzcz0iIj5TbyBnb2luZyBmb3J3 YXJkIHdlIG5lZWQgdGhlIHRocmVhZCBwYXJhbWV0ZXIgaW4gb3VyIGpvYiBmaWxlcywgYW5kIGl0 IHNob3VsZCBiZSAxLiZuYnNwOzwvZGl2PjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPjwvZGl2 PjxkaXYgY2xhc3M9IiI+LSBLaXJhbjwvZGl2PjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPjxk aXYgY2xhc3M9IiI+PGRpdj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIiBjbGFzcz0iIj48ZGl2IGNs YXNzPSIiPk9uIDA0LUFwci0yMDE3LCBhdCA5OjE5IFBNLCBIYXJyaXMsIEphbWVzIFIgJmx0Ozxh IGhyZWY9Im1haWx0bzpqYW1lcy5yLmhhcnJpc0BpbnRlbC5jb20iIGNsYXNzPSIiPmphbWVzLnIu aGFycmlzQGludGVsLmNvbTwvYT4mZ3Q7IHdyb3RlOjwvZGl2PjxiciBjbGFzcz0iQXBwbGUtaW50 ZXJjaGFuZ2UtbmV3bGluZSI+PGRpdiBjbGFzcz0iIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIiBz dHlsZT0iZm9udC1mYW1pbHk6IEhlbHZldGljYTsgZm9udC1zaXplOiAxMnB4OyBmb250LXN0eWxl OiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiBub3JtYWw7 IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IG9ycGhhbnM6IGF1dG87IHRleHQtYWxpZ246IHN0YXJ0 OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5v cm1hbDsgd2lkb3dzOiBhdXRvOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXNpemUt YWRqdXN0OiBhdXRvOyAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IiBjbGFzcz0iIj48 YnIgY2xhc3M9IkFwcGxlLWludGVyY2hhbmdlLW5ld2xpbmUiPk9uIEFwciA0LCAyMDE3LCBhdCA0 OjI1IEFNLCBLaXJhbiBEaWtzaGl0ICZsdDs8YSBocmVmPSJtYWlsdG86a2Rpa3NoaXRAY2xvdWRz aW1wbGUuY29tIiBjbGFzcz0iIj5rZGlrc2hpdEBjbG91ZHNpbXBsZS5jb208L2E+Jmd0OyB3cm90 ZTo8YnIgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPkhpIEppbSw8c3BhbiBjbGFzcz0iQXBwbGUtY29u dmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PGJyIGNsYXNzPSIiPjxiciBjbGFzcz0iIj5UaGFu ayB5b3UgZm9yIHRoZSBwb2ludGVycyByZWxhdGluZyB0byB3b3JrbG9hZC4gSXMgdGhlc2UgdGVz dHMgKCB0aHJvdWdocHV0IHRlc3QgLCBsYXRlbmN5IHRlc3QgKSBhcmUgZG9uZSBvbiBzaW5nbGUg ZHJpdmVzIG9yIGFyZSB0aGV5IGRvbmUgb24gYnVuY2ggb2YgZHJpdmVzLjxzcGFuIGNsYXNzPSJB cHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48YnIgY2xhc3M9IiI+PC9ibG9ja3F1 b3RlPjxiciBzdHlsZT0iZm9udC1mYW1pbHk6IEhlbHZldGljYTsgZm9udC1zaXplOiAxMnB4OyBm b250LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0 OiBub3JtYWw7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0 LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsg d29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsiIGNsYXNz PSIiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogSGVsdmV0aWNhOyBmb250LXNpemU6IDEycHg7 IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWln aHQ6IG5vcm1hbDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgdGV4dC1hbGlnbjogc3RhcnQ7IHRl eHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFs OyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyBmbG9h dDogbm9uZTsgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7IiBjbGFzcz0iIj5IaSBLaXJhbiw8 L3NwYW4+PGJyIHN0eWxlPSJmb250LWZhbWlseTogSGVsdmV0aWNhOyBmb250LXNpemU6IDEycHg7 IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWln aHQ6IG5vcm1hbDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgdGV4dC1hbGlnbjogc3RhcnQ7IHRl eHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFs OyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyIgY2xh c3M9IiI+PGJyIHN0eWxlPSJmb250LWZhbWlseTogSGVsdmV0aWNhOyBmb250LXNpemU6IDEycHg7 IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWln aHQ6IG5vcm1hbDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgdGV4dC1hbGlnbjogc3RhcnQ7IHRl eHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFs OyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyIgY2xh c3M9IiI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7IGZvbnQtc2l6ZTogMTJw eDsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdl aWdodDogbm9ybWFsOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB0ZXh0LWFsaWduOiBzdGFydDsg dGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3Jt YWw7IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IGZs b2F0OiBub25lOyBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsiIGNsYXNzPSIiPlRoaXMgd2ls bCBkZXBlbmQgb24gd2hhdCB5b3UgYXJlIHRyeWluZyB0byBtZWFzdXJlLiAmbmJzcDtTb21lIHRo cm91Z2hwdXQgdGVzdHMgbWVhc3VyZSBob3cgbWFueSBJL08gY2FuIGJlIHBlcmZvcm1lZCB1c2lu ZyBhIHNpbmdsZSBJbnRlbCBYZW9uIENQVSBjb3JlLCBpbiB3aGljaCBjYXNlIHdlIHRlc3Qgd2l0 aCBtdWx0aXBsZSBTU0RzIHRvIG1heCBvdXQgdGhlIENQVSBjb3JlLiAmbmJzcDtPdGhlciB0ZXN0 cyBzdWNoIGFzIFFEPTEgbGF0ZW5jeSB0ZXN0cyBhcmUgdXN1YWxseSBkb25lIHVzaW5nIGEgc2lu Z2xlIGRyaXZlLjwvc3Bhbj48YnIgc3R5bGU9ImZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7IGZvbnQt c2l6ZTogMTJweDsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFs OyBmb250LXdlaWdodDogbm9ybWFsOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB0ZXh0LWFsaWdu OiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNw YWNlOiBub3JtYWw7IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRo OiAwcHg7IiBjbGFzcz0iIj48YnIgc3R5bGU9ImZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7IGZvbnQt c2l6ZTogMTJweDsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFs OyBmb250LXdlaWdodDogbm9ybWFsOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB0ZXh0LWFsaWdu OiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNw YWNlOiBub3JtYWw7IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRo OiAwcHg7IiBjbGFzcz0iIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIiBzdHlsZT0iZm9udC1mYW1p bHk6IEhlbHZldGljYTsgZm9udC1zaXplOiAxMnB4OyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQt dmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGxldHRlci1zcGFjaW5n OiBub3JtYWw7IG9ycGhhbnM6IGF1dG87IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDog MHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd2lkb3dzOiBh dXRvOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiBhdXRvOyAt d2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IiBjbGFzcz0iIj5BdHRhY2hlZCBpcyBGSU8g am9iIGZpbGUgd2hpY2ggaSBoYXZlIHVzZWQgYW5kIGdldHRpbmcgdGhlIGVycm9yLjxzcGFuIGNs YXNzPSJBcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48YnIgY2xhc3M9IiI+PC9i bG9ja3F1b3RlPjxiciBzdHlsZT0iZm9udC1mYW1pbHk6IEhlbHZldGljYTsgZm9udC1zaXplOiAx MnB4OyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQt d2VpZ2h0OiBub3JtYWw7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IHRleHQtYWxpZ246IHN0YXJ0 OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5v cm1hbDsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsi IGNsYXNzPSIiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogSGVsdmV0aWNhOyBmb250LXNpemU6 IDEycHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9u dC13ZWlnaHQ6IG5vcm1hbDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgdGV4dC1hbGlnbjogc3Rh cnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTog bm9ybWFsOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4 OyBmbG9hdDogbm9uZTsgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7IiBjbGFzcz0iIj5QbGVh c2UgYWRkIHRocmVhZD0xIHRvIHlvdXIgam9iIGZpbGUuICZuYnNwO0EgcGF0Y2ggd2lsbCBiZSBw dXNoZWQgc2hvcnRseSB0aGF0IGRvY3VtZW50cyB0aGlzIHJlcXVpcmVtZW50IGZvciB0aGUgU1BE SyBwbHVnaW4gYW5kIGVuZm9yY2VzIGl0IGF0IHJ1bnRpbWUgd2l0aCBhIG1vcmUgc3VpdGFibGUg ZXJyb3IgbWVzc2FnZS48L3NwYW4+PGJyIHN0eWxlPSJmb250LWZhbWlseTogSGVsdmV0aWNhOyBm b250LXNpemU6IDEycHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5v cm1hbDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgdGV4dC1h bGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0 ZS1zcGFjZTogbm9ybWFsOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13 aWR0aDogMHB4OyIgY2xhc3M9IiI+PGJyIHN0eWxlPSJmb250LWZhbWlseTogSGVsdmV0aWNhOyBm b250LXNpemU6IDEycHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5v cm1hbDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgdGV4dC1h bGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0 ZS1zcGFjZTogbm9ybWFsOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13 aWR0aDogMHB4OyIgY2xhc3M9IiI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7 IGZvbnQtc2l6ZTogMTJweDsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczog bm9ybWFsOyBmb250LXdlaWdodDogbm9ybWFsOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB0ZXh0 LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdo aXRlLXNwYWNlOiBub3JtYWw7IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRleHQtc3Ryb2tl LXdpZHRoOiAwcHg7IGZsb2F0OiBub25lOyBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsiIGNs YXNzPSIiPi1KaW08L3NwYW4+PGJyIHN0eWxlPSJmb250LWZhbWlseTogSGVsdmV0aWNhOyBmb250 LXNpemU6IDEycHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1h bDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgdGV4dC1hbGln bjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1z cGFjZTogbm9ybWFsOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0 aDogMHB4OyIgY2xhc3M9IiI+PGJyIHN0eWxlPSJmb250LWZhbWlseTogSGVsdmV0aWNhOyBmb250 LXNpemU6IDEycHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1h bDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgdGV4dC1hbGln bjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1z cGFjZTogbm9ybWFsOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0 aDogMHB4OyIgY2xhc3M9IiI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSIgc3R5bGU9ImZvbnQtZmFt aWx5OiBIZWx2ZXRpY2E7IGZvbnQtc2l6ZTogMTJweDsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250 LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogbm9ybWFsOyBsZXR0ZXItc3BhY2lu Zzogbm9ybWFsOyBvcnBoYW5zOiBhdXRvOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6 IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czog YXV0bzsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogYXV0bzsg LXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyIgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPjxi ciBjbGFzcz0iIj5UaGFuayB5b3U8YnIgY2xhc3M9IiI+S2lyYW48YnIgY2xhc3M9IiI+PGJyIGNs YXNzPSIiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiIGNsYXNzPSIiPk9uIDMxLU1hci0yMDE3LCBh dCAxMjowOSBBTSwgSGFycmlzLCBKYW1lcyBSICZsdDs8YSBocmVmPSJtYWlsdG86amFtZXMuci5o YXJyaXNAaW50ZWwuY29tIiBjbGFzcz0iIj5qYW1lcy5yLmhhcnJpc0BpbnRlbC5jb208L2E+Jmd0 OyB3cm90ZTo8YnIgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPjxibG9ja3F1b3RlIHR5cGU9ImNpdGUi IGNsYXNzPSIiPjxiciBjbGFzcz0iIj5PbiBNYXIgMzAsIDIwMTcsIGF0IDU6NDMgQU0sIEtpcmFu IERpa3NoaXQgJmx0OzxhIGhyZWY9Im1haWx0bzprZGlrc2hpdEBjbG91ZHNpbXBsZS5jb20iIGNs YXNzPSIiPmtkaWtzaGl0QGNsb3Vkc2ltcGxlLmNvbTwvYT4mZ3Q7IHdyb3RlOjxiciBjbGFzcz0i Ij48YnIgY2xhc3M9IiI+SGkgQWxsLDxiciBjbGFzcz0iIj48YnIgY2xhc3M9IiI+PGJyIGNsYXNz PSIiPkkgaGF2ZSAyIHBhcnQgcXVlc3Rpb24gcmVsYXRpbmcgdG8gcGVyZm9ybWFuY2UgYmVuY2ht YXJraW5nIG9mIHRoZSBTUERLIGFuZCBmaW9fcGx1Z2luLjxzcGFuIGNsYXNzPSJBcHBsZS1jb252 ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48YnIgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPjEuIElz IHRoZXJlIGFueSByZWZlcmVuY2UgZG9jdW1lbnQgc3BlY2lmeWluZyB0aGUgd29ya2xvYWQgdHlw ZXMgLCBxdWV1ZSBkZXB0aCBhbmQgYmxvY2sgc2l6ZSB1c2VkIGZvciBiZW5jaG1hcmtpbmcgdGhl IFNQREsgcGVyZm9ybWFuY2UgbnVtYmVycy48c3BhbiBjbGFzcz0iQXBwbGUtY29udmVydGVkLXNw YWNlIj4mbmJzcDs8L3NwYW4+PGJyIGNsYXNzPSIiPiZuYnNwOyZuYnNwOyZuYnNwO0lzIHRoZXJl IGFueSBPUyBsZXZlbCBwZXJmb3JtYW5jZSB0dW5pbmcgdG8gYmUgZG9uZS4gSXQgd2lsbCBiZSBn cmVhdCBpZiB3ZSBjYW4gZ2V0IHNvbWUgaW5zaWdodCBvbiB0aGUgcGVyZm9ybWFuY2UgdGVzdGJl ZCB1c2VkLjxiciBjbGFzcz0iIj48YnIgY2xhc3M9IiI+Tm90ZSA6PHNwYW4gY2xhc3M9IkFwcGxl LWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPjxiciBjbGFzcz0iIj4mbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDtJIGRpZCBmaW5kIHRoZSBEUERLICZuYnNwO3BlcmZvcm1hbmNlIG9wdGltaXNh dGlvbiBndWlkZWxpbmVzIDxhIGhyZWY9Imh0dHBzOi8vbGlzdHMuMDEub3JnL3BpcGVybWFpbC9z cGRrLzIwMTYtSnVuZS8wMDAwMzUuaHRtbCIgY2xhc3M9IiI+aHR0cHM6Ly9saXN0cy4wMS5vcmcv cGlwZXJtYWlsL3NwZGsvMjAxNi1KdW5lLzAwMDAzNS5odG1sPC9hPi4gV2hpY2ggaXMgdXNlZnVs LjxzcGFuIGNsYXNzPSJBcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48YnIgY2xh c3M9IiI+PGJyIGNsYXNzPSIiPjwvYmxvY2txdW90ZT48YnIgY2xhc3M9IiI+SGkgS2lyYW4sPGJy IGNsYXNzPSIiPjxiciBjbGFzcz0iIj5Nb3N0IG9mIHRoZSB0ZXN0cyB3ZSBydW4gZm9yIGRyaXZl ciBwZXJmb3JtYW5jZSBjb21wYXJpc29ucyBhcmUgd2l0aCA0S0IgcmFuZG9tIHJlYWRzLiAmbmJz cDtUaGlzIHB1dHMgdGhlIG1vc3Qgc3RyZXNzIG9uIHRoZSBkcml2ZXIsIHNpbmNlIG9uIE5BTkQg U1NEcywgcmFuZG9tIHJlYWQgcGVyZm9ybWFuY2UgaXMgdHlwaWNhbGx5IG11Y2ggaGlnaGVyIHRo YW4gcmFuZG9tIHdyaXRlIHBlcmZvcm1hbmNlLiAmbmJzcDtGb3IgdGhyb3VnaHB1dCB0ZXN0cywg cXVldWUgZGVwdGggaXMgdHlwaWNhbGx5IHRlc3RlZCBhdCAxMjguICZuYnNwO0ZvciBsYXRlbmN5 IHRlc3RzLCBxdWV1ZSBkZXB0aCBpcyB0eXBpY2FsbHkgdGVzdGVkIGF0IDEuPGJyIGNsYXNzPSIi PjxiciBjbGFzcz0iIj48YmxvY2txdW90ZSB0eXBlPSJjaXRlIiBjbGFzcz0iIj48YnIgY2xhc3M9 IiI+Mi4gJm5ic3A7SSBhbSB0cnlpbmcgZmlvX3BsdWdpbiBmb3IgYmVuY2htYXJraW5nIHRoZSBw ZXJmb3JtYW5jZSwgdGhlIGpvYnMgYXJlIGNvbXBsZXRpbmcgd2l0aCBmb2xsb3dpbmcgZXJyb3I8 c3BhbiBjbGFzcz0iQXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PGJyIGNsYXNz PSIiPjxiciBjbGFzcz0iIj7igJxudm1lX3BjaWUuYzogOTk2Om52bWVfcGNpZV9xcGFpcl9jb21w bGV0ZV9wZW5kaW5nX2FkbWluX3JlcXVlc3Q6ICoqKkVSUk9SKioqIHRoZSBhY3RpdmUgcHJvY2Vz cyAocGlkIDY3MDApIGlzIG5vdCBmb3VuZCBmb3IgdGhpcyBjb250cm9sbGVyLuKAnTxiciBjbGFz cz0iIj48YnIgY2xhc3M9IiI+SSBmb3VuZCB0aGF0IHRoZSAmbmJzcDtudm1lX3BjaWVfcXBhaXJf Y29tcGxldGVfcGVuZGluZ19hZG1pbl9yZXF1ZXN0KClpcyBjaGVja2luZyBpZiB0aGUgcHJvY2Vz cyBleGlzdCwgdGhpcyBpcyB3aGVyZSB0aGUgZXJyb3IgbWVzc2FnZSBpcyBjb21pbmcgZnJvbS48 YnIgY2xhc3M9IiI+SSBhbSBub3Qgc3VyZSBob3cgdGhpcyBwcm9jZXNzIGlzIGdldHRpbmcga2ls bGVkIGV2ZW4gYmVmb3JlIGNvbXBsZXRpb24uIFRoZXJlIGlzIG5vIHRoZXJlIG9wZXJhdGlvbiBk b25lIG9uIHRoaXMgc3lzdGVtIGFwYXJ0IGZyb20gcnVubmluZyBmaW8gcGx1Z2luLjxiciBjbGFz cz0iIj5XYXMgYW55IHNpbWlsYXIgaXNzdWUgc2VlbiBpbiB0aGUgcGFzdCwgd2hpY2ggbWlnaHQg YmUgb2YgaGVscCB0byBnZXQgYXJvdW5kIHRoaXMgZXJyb3IuPGJyIGNsYXNzPSIiPjwvYmxvY2tx dW90ZT48YnIgY2xhc3M9IiI+Q291bGQgeW91IHBvc3QgdGhlIGNvbnRlbnRzIG9mIHlvdXIgZmlv IGpvYiBmaWxlPyAmbmJzcDtOb3RlIHRoYXQgdGhlIFNQREsgZmlvIHBsdWdpbiBpcyBjdXJyZW50 bHkgbGltaXRlZCB0byBhIHNpbmdsZSBqb2IuICZuYnNwO0kgd291bGQgZXhwZWN0IHRvIHNlZSBh biBlcnJvciBsaWtlIHRoaXMgaWYgc3BlY2lmeWluZyBtdWx0aXBsZSBqb2JzIGFuZCB3aXRob3V0 IC10aHJlYWQgKG1lYW5pbmcgYSBzZXBhcmF0ZSBwcm9jZXNzIHBlciBqb2IpLjxiciBjbGFzcz0i Ij48YnIgY2xhc3M9IiI+VGhhbmtzLDxiciBjbGFzcz0iIj48YnIgY2xhc3M9IiI+LUppbTxiciBj bGFzcz0iIj48YnIgY2xhc3M9IiI+PGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSIgY2xhc3M9IiI+PGJy IGNsYXNzPSIiPkJlbG93IGlzIG15IHNldHVwIGRldGFpbHM8c3BhbiBjbGFzcz0iQXBwbGUtY29u dmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PGJyIGNsYXNzPSIiPjxiciBjbGFzcz0iIj5PUyA6 IGZlZG9yYSAyNSAoIHNlcnZlciBlZGl0aW9uICk8YnIgY2xhc3M9IiI+S2VybmVsIHZlcnNpb24g OiA0LjguNi0zMDA8YnIgY2xhc3M9IiI+RFBESyB2ZXJzaW9uIDogNi4xMTxiciBjbGFzcz0iIj48 YnIgY2xhc3M9IiI+SSBoYXZlIGF0dGFjaGVkIGEgc2luZ2xlIG52bWUgZHJpdmUgb2YgNzQ1R0Ig ZnJvbSBJbnRlbCBvbiB3aGljaCBpIGFtIHJ1bm5pbmcgdGhlIEZJTzxzcGFuIGNsYXNzPSJBcHBs ZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48YnIgY2xhc3M9IiI+PGJyIGNsYXNzPSIi PkJlbG93IHdvcmthcm91bmQgd2VyZSB0cmllZCBhbmQgdGhlIGlzc3VlIHN0aWxsIHBlcnNpc3Rz IG5vdCBzdXJlIGhvdyB0byBnZXQgYXJvdW5kIHRoaXMuPHNwYW4gY2xhc3M9IkFwcGxlLWNvbnZl cnRlZC1zcGFjZSI+Jm5ic3A7PC9zcGFuPjxiciBjbGFzcz0iIj48YnIgY2xhc3M9IiI+d29ya2Fy b3VuZDxiciBjbGFzcz0iIj48YnIgY2xhc3M9IiI+MS4gVHJpZWQgZGlmZmVyZW50IHdvcmtsb2Fk cyBpbiBGSU88c3BhbiBjbGFzcz0iQXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+ PGJyIGNsYXNzPSIiPjIuIEkgZGlkIGRldGFjaCB0aGUgTlZNZSBhbmQgYXR0YWNoIGEgbmV3IE5W TWUgZHJpdmU8c3BhbiBjbGFzcz0iQXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+ PGJyIGNsYXNzPSIiPjMuIFJlLWluc3RhbGxlZCB0aGUgRFBESyAsIFNQREsgYW5kIEZJTyB0b29s PGJyIGNsYXNzPSIiPjxiciBjbGFzcz0iIj5Ob3RlIDo8YnIgY2xhc3M9IiI+Rm9sbG93aW5nIGxp bmtzIHdlcmUgdXNlZCB0byBpbnN0YWxsIGFuZCBzZXR1cCBTUERLIGFuZCBGSU8gcGx1Z2luPGJy IGNsYXNzPSIiPjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9zcGRrL3NwZGsiIGNsYXNzPSIi Pmh0dHBzOi8vZ2l0aHViLmNvbS9zcGRrL3NwZGs8L2E+IOKAlCZndDsgU1BESzxzcGFuIGNsYXNz PSJBcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48YnIgY2xhc3M9IiI+PGEgaHJl Zj0iaHR0cHM6Ly9naXRodWIuY29tL3NwZGsvc3Bkay90cmVlL21hc3Rlci9leGFtcGxlcy9udm1l L2Zpb19wbHVnaW4iIGNsYXNzPSIiPmh0dHBzOi8vZ2l0aHViLmNvbS9zcGRrL3NwZGsvdHJlZS9t YXN0ZXIvZXhhbXBsZXMvbnZtZS9maW9fcGx1Z2luPC9hPiDigJQmZ3Q7IEZJT19wbHVnaW48YnIg Y2xhc3M9IiI+PGJyIGNsYXNzPSIiPjxiciBjbGFzcz0iIj5UaGFuayB5b3U8YnIgY2xhc3M9IiI+ S2lyYW48YnIgY2xhc3M9IiI+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX188YnIgY2xhc3M9IiI+U1BESyBtYWlsaW5nIGxpc3Q8YnIgY2xhc3M9IiI+PGEgaHJl Zj0ibWFpbHRvOlNQREtAbGlzdHMuMDEub3JnIiBjbGFzcz0iIj5TUERLQGxpc3RzLjAxLm9yZzwv YT48YnIgY2xhc3M9IiI+aHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9zcGRr PGJyIGNsYXNzPSIiPjwvYmxvY2txdW90ZT48YnIgY2xhc3M9IiI+X19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX188YnIgY2xhc3M9IiI+U1BESyBtYWlsaW5nIGxp c3Q8YnIgY2xhc3M9IiI+PGEgaHJlZj0ibWFpbHRvOlNQREtAbGlzdHMuMDEub3JnIiBjbGFzcz0i Ij5TUERLQGxpc3RzLjAxLm9yZzwvYT48YnIgY2xhc3M9IiI+aHR0cHM6Ly9saXN0cy4wMS5vcmcv bWFpbG1hbi9saXN0aW5mby9zcGRrPGJyIGNsYXNzPSIiPjwvYmxvY2txdW90ZT48YnIgY2xhc3M9 IiI+Jmx0O3NlcV9yZWFkLjRLaUJfY3NpLmZpbyZndDs8L2Jsb2NrcXVvdGU+PC9kaXY+PC9ibG9j a3F1b3RlPjwvZGl2PjxiciBjbGFzcz0iIj48L2Rpdj48L2Rpdj48L2JvZHk+PC9odG1sPg== --===============6566059526509238201==--