R3VzIHNhaWQNCj4gSSBjdXQgYSBob2xlIGluIHRoZSBzaWRlIG9mIG15IGNsb3RoZXMgZHJ5ZXIg YmVjYXVzZSB0aGUgaWRsZXIgd2hlZWwNCmJlYXJpbmcgaGFkIGRpZWQuDQo+IEkgZm91bmQgLi4u DQogICAgICAgICAgIGF0IGVuZA0KDQogICAgICAgICAgICAgICAgICBCQ0NzOiBJZiBteSBpbnRv IGJvcmVzIC0gc2tpcCB0byB0aGUgYXR0YWNoZWQgYXJ0aWNsZSAtDQppdHMgKGFsbW9zdCkgd29y dGh3aGlsZS4NCg0KDQpJIGFtIG5vdCBhbiBhcHBsaWFuY2UgcmVwYWlyZXIsIGJ1dCBzZWVtIHRv IGhhdmUgc3VwcGxpZWQgZW1lcmdlbmN5DQpyZW1lZGlhdGlvbiBmb3IgbW9yZSB0aGFuIGEgZmV3 IGFwcGxpYW5jZXMgb3ZlciB0aGUgeWVhcnMuDQoNCk9uIGEgbnVtYmVyIG9mIG9jY2FzaW9ucywg bm9uZSByZWNlbnQsIEkgaGF2ZSBmb3VuZCB0aGUgd2F0ZXIgcHVtcCBpbg0Kd2FzaGluZyBtYWNo aW5lcyBkaXNhYmxlZCBieSBhIHNpbmdsZSBoYWlyY2xpcCwgbG9kZ2VkIGRpYWdvbmFsbHkgaW4g dGhlDQp3b3Jrcy4gVGhlc2UgYXJlIHRoZSBvbGQgYnV0IG5ld2VyIGVsZWN0cmljIHB1bXBzIHdo aWNoIGRvIG5vdCBoYXZlIGVub3VnaA0Kc3R1ZmZpbmcgdG8gZGlzbWVtYmVyIHNhaWQgaGFpcmNs aXBzLiBUaGUgb2xkIGJ1dCBvbGRlciBtZWNoYW5pY2FsbHkgZHJpdmVuDQpwdW1wcyBhcmUgbWFk ZSBvZiBzdGVybmVyIHN0dWZmLiBNb3N0IGltcHJlc3NpdmUgZmluZCAgd2FzIGFuIGludGFjdCBw YWlyDQpvZiBsYWRpZXMgcGFudGllcyBjb21wbGV0ZWx5IGluc2lkZSBhIHdhdGVycHVtcC4NCg0K UHJvYmFibHkgdG9wIG9mIHRoZSAibm93IGhvdyBkaWQgdGhhdCBnZXQgdGhlcmUiIGxpc3Qgd2Fz IHRoZSBsb25nIGFnbyBmaW5kDQpvZiBhIHZlcnkgbGFyZ2UgYW5kICBqYWdnZWQgZ3Jhc3Mgc2Vl ZCBsb2RnZWQgaW4gdGhlIG1haW4gamV0IGluIG15DQptb3RvcmN5Y2xlIGNhcmJ1cmV0dG9yLiBU aGVyZSB3YXMgYW4gYXBwYXJlbnRseSBpbnRhY3QgbWVzaCBmaWx0ZXIgaW4gdGhlDQp0YW5rIGZ1 ZWwgcGlwZSBpbmxldCBhbmQgdGhlIHNlZWQgd291bGQgYWxzbyBoYXZlIHRvIHRyYXZlcnNlZCB0 aGUgZnVlbA0KcGlwZSBhbmQgY2FyYnVyZXRvciBwYXNzYWdlLg0KDQpCVVQgLSBHdXMncyBmaW5k IHJlbWluZGVkIG9mIGEgbG9uZyBhZ28gcGFwZXIgd2hvc2Ugb3JpZ2luYWwgZm9ybSBoYXMNCnZh bmlzaGVkIGJ1dCwgdGhhbmtzIHRvIHRoZSBteXN0ZXJpZXMgb2YgUU0gYW5kIGludGVybmV0IGFy Y2hpdmVzLCBsaXZlcw0Kb246DQoNClRvIHdpdDoNCg0KaHR0cDovL3d3dy5zdHVtYmxldXBvbi5j b20vc3UvMjVib29JL2hvZ3JhbmNoLmNvbS9tYXllci9xdGwuaHRtbA0KDQoNCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KSG9tZSA8aHR0cDovL2hvZ3JhbmNoLmNvbS9tYXllci9ob21l Lmh0bWw+ICBUaGUgUXVhbnR1bSBUaGVvcnkgb2YgTGF1bmRyeQ0KLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQooVGhhbmtzIHRvIEFsZXggS3J1cHBhIGZvciB0aGlzIGxpbmsuKSBBdCBs YXN0ISBEci4gQnJpYW4gUmVhcmRvbidzIFFUTCBwYWdlDQoqIGRldGFpbHMgYSByaWdvcm91cyB0 aGVvcmV0aWNhbCBmcmFtZXdvcmsgdGhhdCBleHBsYWlucyB0aGUgZm9sbG93aW5nDQpmb3JtZXJs eSBteXN0ZXJpb3VzIHBoZW5vbWVuYToNCg0KICAgLSBXaGVyZSwgZXhhY3RseSBkb2VzIGxpbnQg Y29tZSBmcm9tIGFuZCB3aHkgZG9lcyB0aGUgcXVhbnRpdHkgb2YgbGludA0KICAgY2hhbmdlIGZy b20gbG9hZCB0byBsb2FkPw0KICAgLSBJZiB0aGUgd2FzaGluZyBtYWNoaW5lIGlzIGEgY2xvc2Vk IHN5c3RlbSwgaG93IGNhbiBzb2NrcyBkaXNhcHBlYXI/DQogICAtIFdoZW4gdXNpbmcgcHVibGlj IHdhc2hpbmcgbWFjaGluZXMgYW5kIGRyeWVycywgd2h5IGlzIGl0IHRoYXQgZXZlcnkNCiAgIG9u Y2UgaW4gYSB3aGlsZSB5b3Ugd2lsbCBmaW5kIHNvbWVvbmUgZWxzZSdzIHNvY2tzIGluIHlvdXIg bG9hZCBldmVuIHdoZW4NCiAgIHlvdSBjaGVja2VkIHRoZSB3YXNoZXIvZHJ5ZXIgYWhlYWQgb2Yg dGltZT8NCg0KVGhlIGFib3ZlIHNpdGUgYWxzbyBtYW55IHByb3ZpZGVzIHByYWN0aWNhbCBndWlk ZWxpbmVzIChzb21lIHF1aXRlDQpjb3VudGVyaW50dWl0aXZlKSBmb3IgYWxsIHVzZXJzIG9mIG1v ZGVybiBhdXRvbWF0aWMgbGF1bmRyeSBlcXVpcG1lbnQuIEl0DQpleHBsYWluczoNCg0KICAgLSBX aHkgeW91IHNob3VsZCBuZXZlciBvcGVuIHRoZSB3YXNoZXIgb3IgZHJ5ZXIgdG8gY2hlY2sgb24g dGhlIHN0YXRlIG9mDQogICB5b3VyIGxhdW5kcnkgZHVyaW5nIGEgY3ljbGUuDQogICAtIFdoeSB5 b3Ugc2hvdWxkIG5ldmVyIGNsZWFuIHRoZSBsaW50IHRyYXAuDQogICAtIChGb3IgdXNlcnMgb2Yg cHVibGljIGxhdW5kcnkgZmFjaWxpdGllcykgV2h5IHlvdSBzaG91bGQgYWx3YXlzIHVzZSB0aGUN CiAgIHNhbWUgd2FzaGVyIGFuZCBkcnllciwgZXNwZWNpYWxseSBpZiB5b3UgYXJlIG1pc3Npbmcg aXRlbXMgZnJvbSBwcmV2aW91cw0KICAgd2FzaGVzLg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCiogLSBEci4gUmVhcmRvbidzIG9yaWdpbmFsIHBhZ2Ugc2VlbXMgdG8gaGF2ZSB2 YW5pc2hlZCBmcm9tIHRoZSB3ZWIsIHNvIEkNCnByZXNlbnQgYSBjYWNoZWQgY29weSBiZWxvdy4g TXkgYW5ub3RhdGlvbnMgYXJlIGluIHRoZSBmb3JtICpbYW5ub3RhdGlvbl0qIDoNCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KTGF1bmRyeTogQSBRdWFudHVtIE1lY2hhbmljYWwgQXBw cm9hY2gNCmJ5OiBCcmlhbiBKLiBSZWFyZG9uIDxicmVhcmRvbkBzd2NwLmNvbT4NCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KSW50cm9kdWN0aW9uSXQgaGFzIGJlZW4gYXJndWVkIHRo YXQgdGhlIGFjdCBvZiBkb2luZyBsYXVuZHJ5IGZvbGxvd2VkIHRoZQ0KZGlzY292ZXJ5IG9mIGNs b3RoaW5nIGJ5IG9ubHkgYSBmZXcgd2Vla3MuIFdoaWxlIHRoaXMgZmFjdCBoYXMgYmVlbg0KcmVn YXJkZWQgdG8gYmUgZmFudGFzdGljYWxseSB0cml2aWFsLCBvbmUgY2FuIG5vdCBpZ25vcmUgdGhl IGVuaWdtYXMgdGhhdA0KdGhlIGFjdCBvZiBkb2luZyBsYXVuZHJ5IGhhcyBjcmVhdGVkLiBUaGlz IGlzIGVzcGVjaWFsbHkgdHJ1ZSBpbiB0aGUgYWdlIG9mDQpoaWdoIHNwZWVkIHdhc2hlcnMgYW5k IGRyeWVycy4gSW4gdGhlIGVhcmx5IGRheXMsIHRoZSBkaXNhcHBlYXJhbmNlIG9mDQphcnRpY2xl cyBvZiBjbG90aGluZyBjb3VsZCBzaW1wbHkgYmUgYWNjb3VudGVkIGZvciBieSBzYXlpbmcgdGhh dCB0aGUgc29jaw0Kd2FzIGxvc3QgaW4gdGhlIHJpdmVyLiBVbmZvcnR1bmF0ZWx5LCBzdWNoIGV4 Y3VzZXMgY2FuIG5vIGxvbmdlciBiZSB1c2VkDQp0b2RheS4gVGhlIGF2YWlsYWJpbGl0eSBvZiBo aWdoIHNwZWVkIGF1dG9tYXRlZCB3YXNoZXJzIGFuZCBkcnllcnMgaGFzDQpwcm92aWRlZCBhIG51 bWJlciBvZiBmdW5kYW1lbnRhbCBxdWVzdGlvbnMgdGhhdCBjYW4gbm90IGJlIGFuc3dlcmVkIHVz aW5nDQp0aGUgY2xhc3NpY2FsIGxhdW5kcnkgdGhlb3J5IChpLmUuOiB0aGUgcml2ZXIgd2FzaGVk IHRoZSBzb2NrIGF3YXkpLiBTdWNoDQpxdWVzdGlvbnMgaW5jbHVkZToNCg0KICAgLSBXaGVyZSwg ZXhhY3RseSBkb2VzIGxpbnQgY29tZSBmcm9tIGFuZCB3aHkgZG9lcyB0aGUgcXVhbnRpdHkgb2Yg bGludA0KICAgY2hhbmdlIGZyb20gbG9hZCB0byBsb2FkPw0KICAgLSBJZiB0aGUgd2FzaGluZyBt YWNoaW5lIGlzIGEgY2xvc2VkIHN5c3RlbSwgaG93IGNhbiBzb2NrcyBkaXNhcHBlYXI/DQogICAt IFdoZW4gdXNpbmcgcHVibGljIHdhc2hpbmcgbWFjaGluZXMgYW5kIGRyeWVycywgd2h5IGlzIGl0 IHRoYXQgZXZlcnkNCiAgIG9uY2UgaW4gYSB3aGlsZSB5b3Ugd2lsbCBmaW5kIHNvbWVvbmUgZWxz ZSdzIHNvY2tzIGluIHlvdXIgbG9hZCBldmVuIHdoZW4NCiAgIHlvdSBjaGVja2VkIHRoZSB3YXNo ZXIvZHJ5ZXIgYWhlYWQgb2YgdGltZT8NCg0KVGhlIGluYWJpbGl0eSB0byBhbnN3ZXIgdGhlc2Ug cXVlc3Rpb25zIHVzaW5nIHRoZSBjbGFzc2ljYWwgdGhlb3J5IG9mDQpsYXVuZHJ5IHJlc3VsdGVk IGluIHRoZSBkZXZlbG9wbWVudCBvZiBuZXcgdGhlb3JpZXMuDQoNClRoaXMgcGFwZXIgaXMgYSBz aW1wbGUgaW50cm9kdWN0aW9uIHRvIHRoZSBxdWFudHVtIHRoZW9yeSBvZiBsYXVuZHJ5LiBBcyBh DQpyZXN1bHQsIGl0IG9ubHkgZGVhbHMgd2l0aCB0aGUgc2ltcGxlc3QgZXhhbXBsZSBpbiB3aGlj aCBhIHNvY2sgaXMgYW5hbHl6ZWQNCmluIGVpdGhlciBhIHdhc2hlciBvciBhIGRyeWVyLiBUaGUg bWF0aGVtYXRpY3MgaW52b2x2ZWQgaW4gdGhlIGFuYWx5c2lzIG9mDQphIHNvY2sgaW4gYm90aCBh IHdhc2hlciBhbmQgZHJ5ZXIgYW5kIGluIHRyYW5zaXRpb24gYmV0d2VlbiB0aGUgdHdvIGlzIGxl ZnQNCmZvciBtb3JlIGFkdmFuY2VkIGxhdW5kcnkgY291cnNlcy4NCg0KVGhlIGZpcnN0IG1vZGVy biBhdHRlbXB0IHRvIGV4cGxhaW4gdGhlIGZ1bmRhbWVudGFsIHF1ZXN0aW9ucyBvZiBsYXVuZHJ5 DQppbnZvbHZlZCB0aGUgZGVjYXkgdGhlb3J5LiBUaGUgZGVjYXkgdGhlb3J5IHN0YXRlcyB0aGF0 IHRoZSBxdWFudGl0eSBvZg0Kc29ja3MgaW4gYSBsb2FkIGNhbiBiZSBleHByZXNzZWQgYXMgYSBk ZWNyZWFzaW5nIGV4cG9uZW50aWFsIGZ1bmN0aW9uIG9mDQp0aW1lIHdoaWNoIGlzIGFuYWxvZ291 cyB0byByYWRpb2FjdGl2ZSBkZWNheSAoc2VlIGVxdWF0aW9uIDEpLg0KTnQgPSBOMCpleHAoLXB0 KS4gICAgKDEpDQoNClRoZSBkZWNheSB0aGVvcnkgZWFzaWx5IGV4cGxhaW5zIHRoZSBvcmlnaW4g b2YgbGludCBhbmQgd2h5IG5ldyBzb2NrcyB0ZW5kDQp0byByZWxlYXNlIG1vcmUgbGludCB0aGFu IG9sZCBzb2Nrcy4gSG93ZXZlciwgYWNjb3JkaW5nIHRvIHRoaXMgdGhlb3J5LA0Kc29ja3Mgc2hv dWxkIG5ldmVyIGNvbXBsZXRlbHkgZGlzYXBwZWFyLCBvciwgbW9yZSBpbXBvcnRhbnRseSwgcmVh cHBlYXIuDQpUaGlzIGNsZWFybHkgY29udHJhZGljdHMgZXZlcnlkYXkgZXhwZXJpZW5jZS4NCg0K VGhlIFF1YW50dW0gVGhlb3J5IG9mIExhdW5kcnlUaGUgcXVhbnR1bSB0aGVvcnkgb2YgbGF1bmRy eSAoUVRMKSwgaG93ZXZlciwNCmNhbiBleHBsYWluIHRoZSBmdW5kYW1lbnRhbCBxdWVzdGlvbnMg b2YgbGF1bmRyeS4gVGhlIFFUTCBpcyBiYXNlIG9uIHRocmVlDQppbnR1aXRpdmUgYXNzdW1wdGlv bnMuDQoNCiAgIC0gVGhlIHNvY2sgbmV2ZXIgbGVhdmVzIHRoZSBlbmNsb3NlZCBzeXN0ZW0gb2Yg dGhlIHdhc2hlciBvciBkcnllci4NCiAgIC0gV2hpbGUgdGhlIHNvY2sgaXMgY29uZmluZWQgdG8g dGhlIHRvdGFsIHdhc2hlciBzeXN0ZW0gaXQgaXMgbm90DQogICBjb25maW5lZCB0byB0aGUgbWFp biB3YXNoaW5nIGNvbXBhcnRtZW50LiBJdCBtYXkgYmUgaW4gdGhlIG1haW4gd2FzaGluZw0KICAg Y29tcGFydG1lbnQsIGluIHRoZSBsaW50IHRyYXAgLCBvciBhbnl3aGVyZSBpbiBiZXR3ZWVuLg0K ICAgLSBUaGUgc29jayBjYW4gYmUgZXhwcmVzc2VkIG1hdGhlbWF0aWNhbGx5IGFzIGEgd2F2ZSBm dW5jdGlvbiBvZg0KICAgcG9zaXRpb24gYW5kIHRpbWUgKFkoeCx0KSkuDQoNClRoZXNlIGFzc3Vt cHRpb25zIGNhbiBiZSBtYXRoZW1hdGljYWxseSBtYW5pcHVsYXRlZCB0byBwcm92aWRlIGEgbnVt YmVyIG9mDQpmdW5jdGlvbnMgYW5kIGNvbmRpdGlvbnMgd2hpY2ggYXJlIGluIGNsb3NlIGNvcnJl c3BvbmRlbmNlIHRvIHF1YW50dW0NCnRoZW9yeS4NCg0KICAgLSBUaGUgZmlyc3Qgc3VjaCBjb25k aXRpb24gaXMgdGhhdCB0aGUgZXJyb3IgaXMgb2JzZXJ2aW5nIHRoZSBwb3NpdGlvbg0KICAgb2Yg YSBzb2NrIGluIGEgc3lzdGVtIG11bHRpcGxpZWQgYnkgdGhlIGVycm9yIGluIG1lYXN1cmluZyB0 aGUgbW9tZW50dW0gb2YNCiAgIHRoZSBzb2NrIGFzIGl0IHRyYXZlbHMgaW4gdGhlIHN5c3RlbSBp cyBhIGNvbnN0YW50LiBUaGlzIHJlbGF0aW9uIGlzDQogICBjb21tb25seSByZWZlcnJlZCB0byBp biBxdWFudHVtIG1lY2hhbmljcyBjaXJjbGVzIGFzIHRoZSBIZWlzZW5iZXJnDQogICBVbmNlcnRh aW50eSBQcmluY2lwbGUgKHNlZSBlcXVhdGlvbiAyKS4gVGhlIGltcGxpY2F0aW9uIG9mIHRoaXMg cmVsYXRpb24gaXMNCiAgIHF1aXRlIHByb2ZvdW5kLiBJZiBvbmUgZGlzdHVyYnMgdGhlIHdhc2hl ciBieSBsb29raW5nIGluIGl0IG9yIGlmIG9uZSBlbmRzDQogICBpdHMgY3ljbGUsIHRoZSBhY3Qg b2Ygb2JzZXJ2aW5nIHRoZSBzb2NrIGluIHRoZSBtYWluIGNvbXBhcnRtZW50IHdpbGwNCiAgIGlu Y3JlYXNlIHRoZSBlcnJvciBpbiBrbm93aW5nIGV4YWN0bHkgaG93IGZhc3QgdGhlIHNvY2sgaXMg bW92aW5nIHdpdGhpbg0KICAgdGhlIHN5c3RlbSBhcyBhIHdob2xlLiBUaGlzIG1lYW5zIHRoYXQg dGhlIGNvbXB1dGVyaXplZCB0cmFja2luZyBzeXN0ZW0gaW4NCiAgIHRoZSBtYWNoaW5lIHRoYXQg dHJpZXMgdG8gbWFpbnRhaW4gYSBzdGF0aXN0aWNhbCBhbmFseXNpcyBvZiB3aGVyZSBldmVyeQ0K ICAgc29jayBtaWdodCBiZSBtYXkgYWNjaWRlbnRhbGx5IG1pc3BsYWNlIGEgc29jayBzb21ld2hl cmUgaW4gdGhlIHdhc2hpbmcNCiAgIHN5c3RlbS4NCg0KICAgzpRwIM6UcSA+aC8oNM+AKS4gICAg KDIpDQoNCiAgICpbSGVyZSwgzpRwIGFuZCDOlHEgYXJlIHRoZSB1bmNlcnRhaW50aWVzIGluIHBv c2l0aW9uIGFuZCBtb21lbnR1bSwNCiAgIHJlc3BlY3RpdmVseSwgYW5kIGggaXMgUGxhbmNrJ3Mg Y29uc3RhbnQuXSoNCg0KICAgLSBUaGUgc2Vjb25kIHJlc3VsdCBvZiB0aGUgYmFzaWMgYXNzdW1w dGlvbnMgb2YgdGhlIFFUTCBpcyB0aGF0IHRoZSBzb2NrDQogICBtdXN0IGFsd2F5cyBiZSBzb21l d2hlcmUgaW4gdGhlIHdhc2hpbmcgc3lzdGVtLiBUaGlzIGltcGxpZXMgdGhhdCB0aGUNCiAgIHBy b2JhYmlsaXR5IG9mIGZpbmRpbmcgdGhlIHNvY2sgc29tZXdoZXJlIHdpdGhpbiB0aGUgc3lzdGVt IGF0IGFueSB0aW1lDQogICBtdXN0IGFsd2F5cyBlcXVhbCB1bml0eSwgb3IsIHRoZSBpbnRlZ3Jh bCBvZiB0aGUgc29jayB3YXZlIGZ1bmN0aW9uIHNxdWFyZWQNCiAgIG11c3QgZXF1YWwgMSAoc2Vl IGVxdWF0aW9uIDMpLg0KDQogICDiiKtZKllkeCA9IOKIq3xZfDJkeCA9IDEuICAgICgzKQ0KDQpV c2luZyB0aGVzZSBhc3N1bXB0aW9ucywgYSBnZW5lcmFsIGZvcm0gb2YgdGhlIHdhdmUgZnVuY3Rp b24gZm9yIHRoZSBzb2NrDQppbiB0aGUgd2FzaGVyIGNhbiBiZSBpbmZlcnJlZC4gVGhpcyBmdW5j dGlvbiBpcyBpZGVudGljYWwgdG8gdGhlIHN0YW5kYXJkDQpzb2x1dGlvbiB0byB0aGUgU2NocsO2 ZGluZ2VyIFdhdmUgRXF1YXRpb24gKFNXRSkgYW5kIGNhbiBiZSBleHByZXNzZWQgYXMgdHdvDQpw YXJ0aWFsIGRlcml2YXRpdmVzIG9mIHRpbWUgYW5kIHNwYWNlLg0KDQotaDLiiIIyWWloIOKIglkN Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQorIFYoeCx0KSA9DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAgICg0KThtz4Ay4oiCMngyz4DiiIJ0DQoNClRo ZSBzb2NrIHdhdmUgZnVuY3Rpb25zIHRoYXQgc2F0aXNmeSB0aGUgU1dFIGNhbiB0YWtlIHRocmVl IGZvcm1zIHRoYXQNCnJlcHJlc2VudCB0aGUgdGhyZWUgZGlmZmVyZW50IHBvc3NpYmxlIHBsYWNl cyB0aGUgc29jayBjYW4gcmVzaWRlIHdpdGhpbg0KdGhlIHdhc2hpbmcgc3lzdGVtLiBUaGUgZW50 aXJlIHN5c3RlbSBjYW4gYmUgcGljdHVyZWQgYXMgYW4gaW5maW5pdGUNCnBvdGVudGlhbCBlbmVy Z3kgd2VsbCB0aGF0IGNvbnRhaW5zIGEgZmluaXRlIGVuZXJneSBiYXJyaWVyLiBUaGUgbWFpbg0K d2FzaGluZyBjb21wYXJ0bWVudCBpcyByZXByZXNlbnRlZCBhcyBhIHBvdGVudGlhbCB3ZWxsICg1 KSwgdGhlIHdhc2hpbmcNCnN5c3RlbSBpcyByZXByZXNlbnRlZCBieSB0aGUgcG90ZW50aWFsIGJh cnJpZXIgKDYpLCBhbmQgdGhlIGxpbnQgdHJhcCBpcw0KcmVwcmVzZW50ZWQgYnkgYW5vdGhlciwg YnV0IG5hcnJvd2VyLCBwb3RlbnRpYWwgd2VsbCAoNykuDQoNClkxKHgsdCkgPSBBKnNpbihreC13 dCkgKyBCKmNvcyhreC13dCkgICAgKDUpDQoNClkyKHgsdCkgPSBFKmV4cCgtRngtdXQpICAgICg2 KQ0KDQpZMyh4LHQpID0gQypzaW4oa3gtd3QpICsgRCpjb3Moa3gtd3QpICAgICg3KQ0KDQpXaGVy ZSwgdGhlIGNvbnN0YW50cyBBLCBCLCBDLCBELCBFLCBhbmQgRiwgYXJlIG1hdGVyaWFsIHByb3Bl cnRpZXMgb2YgdGhlDQpzb2NrYW5kIHdhc2hlciBzeXN0ZW0gYW5kIHcsIGssIGFuZCB1IGFyZSBj eWNsaWMgcHJvcGVydGllcyBvZiB0aGUgcG9zdGlvbg0Kb2YgdGhlIHNvY2sgd2l0aGluIHRoZSB3 YXNoZXIuDQoNClRoZSBRVEwgZXhwbGFpbnMgdGhlIGZ1bmRhbWVudGFsIG9mIHByb2JsZW1zIG9m IGxhdW5kcnkgaW4gYSB2ZXJ5IGRpcmVjdA0KbWFubmVyLiBUaGUgb3JpZ2luIG9mIGxpbnQgY2Fu IG5vdyBiZSBkZWZpbmVkIGFzIHRoZSBzdW0gb2YgcHJvYmFiaWxpdGllcw0KdGhhdCBhIHNvY2sg dHJhdmVsZWQgb3IgdHVubmVsZWQgdGhyb3VnaCB0aGUgd2FzaGluZyBzeXN0ZW0gaW50byB0aGUg bGludA0KdHJhcC4gVGhlIHNvY2sgdHVubmVsaW5nIHBoZW5vbWVub24gaXMgYW5hbG9nb3VzIHRv IHRoZSBlbGVjdHJvbiB0dW5uZWxpbmcNCnBoZW5vbWVuYSBpbiBxdWFudHVtIG1lY2hhbmljcy4g VGhlIG9jY2FzaW9uYWwgcHJlc2VuY2Ugb2YgbGFyZ2UgcXVhbnRpdGllcw0Kb2YgbGludCBpcyBl YXNpbHkgZXhwbGFpbmVkIGJ5IHRoZSByZWFsIGxpa2VsaWhvb2QgdGhhdCBlbnRpcmUgc29ja3Mg Y2FuDQpzcG9udGFuZW91c2x5IHRha2Ugb24gdGhlIHdhdmUgZnVuY3Rpb24gb2YgdGhlIGxpbnQg dHJhcC4NCg0KVGhlIFFUTCBhbHNvIGV4cGxhaW5zIHRoYXQgc29ja3MgbmV2ZXIgYWN0dWFsbHkg ZGlzYXBwZWFyLiBRdWl0ZSBzaW1wbHksIGF0DQp0aGUgdGltZSBvZiBkaXN0dXJiYW5jZSBvciBz dG9wcGluZyBvZiB0aGUgbWFjaGluZSB0aGV5IGhhdmUgYSB3YXZlDQpmdW5jdGlvbiB0aGF0IHB1 dHMgdGhlbSB0ZW1wb3JhcmlseSBpbiB0aGUgd2FzaGluZyBzeXN0ZW0gb3IgY29tcGxldGVseQ0K Y29udmVydHMgdGhlbSB0byBsaW50Lg0KDQpGdXJ0aGVybW9yZSwgaWYgYSBtYWNoaW5lIGlzIGRp c3R1cmJlZCBkdXJpbmcgYSBzdWJzZXF1ZW50IHdhc2hpbmcgY3ljbGUNCnRoZXJlIGlzIGEgZmlu aXRlIHByb2JhYmlsaXR5IHRoYXQgYSBzb2NrIGxvc3QgaW4gcHJldmlvdXMgY3ljbGVzIG1heQ0K cmVhcHBlYXIgaW4gdGhlIG1haW4gd2FzaGluZyBjb21wYXJ0bWVudC4gVGhpcyBleHBsYWlucyB0 aGUgYXBwZWFyYW5jZSBvZg0Kb3RoZXIgcGVvcGxlJ3Mgc29jayBpbiB5b3VyIHdhc2guDQoNCkxh c3RseSwgdGhlIGRpc2FwcGVhcmFuY2Ugb2YgZW50aXJlIGxvYWRzIGNhbiBiZSBleHBsYWluZWQg YnkgdGhlIGV4aXN0ZW5jZQ0Kb2YgdGhlIGZpbml0ZSBwcm9iYWJpbGl0eSB0aGF0IGFsbCBvZiB0 aGUgc29ja3MgaW4gdGhlIG1haW4gY29tcGFydG1lbnQNCmhhdmUgdGFrZW4gb24gdGhlIHdhdmUg ZnVuY3Rpb24gb2YgdGhlIGxpbnQgdHJhcCBhbmQgc3Vic2VxdWVudGx5IHR1cm5lZCB0bw0KbGlu dC4gVGhpcyBmdXJ0aGVyIGltcGxpZXMgdGhhdCBpbnN0ZWFkIG9mIGFjY3VzaW5nIHNvbWVvbmUg b2Ygc3RlYWxpbmcNCnlvdXIgc29ja3MsIHJ1bm5pbmcgdGhlIG1hY2hpbmUgd2hpbGUgZW1wdHkg Zm9yIGxvbmcgcGVyaW9kcyBvZiB0aW1lIHdpbGwNCmluY3JlYXNlIHRoZSBjaGFuY2VzIG9mIHJl dHJpZXZhbCBvZiBtb3N0IG9mIHRoZSBzb2Nrcy4NCg0KV2hpbGUgdGhlIGN1cnJlbnQgaW1wbGlj YXRpb25zIHRoZSBRVEwgc2VlbSBleHRyYW9yZGluYXJ5LCB0aGUgZmFyIHJlYWNoaW5nDQppbXBs aWNhdGlvbnMgbWF5IHJlZGVmaW5lIGxhdW5kcm9tYXQgZXRpcXVldHRlIGZvciBjZW50dXJpZXMg dG8gY29tZS4NCg0KDQogICAtIFRoZSBtb3JlIG9mdGVuIHlvdSBkaXN0dXJiIHRoZSBzeXN0ZW0g dGhlIGdyZWF0ZXIgdGhlIGNoYW5jZSBvZiBsb3NpbmcNCiAgIGEgc29jayBhbmQgdGhlIGdyZWF0 ZXIgdGhlIGNoYW5jZSBvZiByZXRyaWV2aW5nIGEgcHJldmlvdXNseSBsb3N0IHNvY2sgZnJvbQ0K ICAgc29tZW9uZSBlbHNlJ3MgbG9hZC4NCiAgIC0gRnVydGhlcm1vcmUsIHRoZXJlIGlzIGFsd2F5 cyBhIHByb2JhYmlsaXR5IHRoYXQgYW4gZW50aXJlIGxvYWQgb2YNCiAgIHNvY2tzIGNhbiBiZSBs b3N0IHNpbmNlIHRoZSBhY3Qgb2YgZGlzdHVyYmluZyB0aGUgbWFjaGluZSBpcyBhbHdheXMgYSBw YXJ0DQogICBvZiBkb2luZyBsYXVuZHJ5Lg0KICAgLSBUaGlyZGx5LCB0aHJvd2luZyBhd2F5IGxp bnQgbWFrZXMgdGhlIHJldHJpZXZhbCBvZiBsb3N0IHNvY2tzIG1vcmUNCiAgIGRpZmZpY3VsdC4g U28gaW4gYWxsIGZhaXJuZXNzIHRvIGV2ZXJ5b25lIHdobyBhcyBldmVyIHVzZWQgdGhlIG1hY2hp bmUsIHRoZQ0KICAgbGludCBzaG91bGQgbmV2ZXIgYmUgcmVtb3ZlZC4NCiAgIC0gRm91cnRobHks IGFuZCBmb3IgdGhlIGluZGl2aWR1YWwsIG1vc3QgaW1wb3J0YW50bHksIHdoZW4gYXQgYQ0KICAg TGF1bmRyb21hdCBvbmUgc2hvdWxkIGFsd2F5cyBpbnNpc3Qgb24gdXNpbmcgdGhlIHNhbWUgd2Fz aGVyIGFuZCBkcnllciB0bw0KICAgaW5jcmVhc2UgeW91ciBjaGFuY2VzIG9mIHJldHJpZXZpbmcg cHJldmlvdXNseSBsb3N0IHNvY2tzLg0KICAgLSBMYXN0bHksIGFuZCBtb3N0IGltcG9ydGFudGx5 LCB3YXNoaW5nIG1hY2hpbmUgcmVwYWlycGVyc29ucyB3aWxsIG5vdw0KICAgYmUgcmVxdWlyZWQg dG8gaGF2ZSBleHRlbnNpdmUgYmFja2dyb3VuZHMgaW4gcXVhbnR1bSBtZWNoYW5pY3MuDQoNCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KTGFzdCBtb2RpZmllZDogQXVndXN0IDE5LCAx OTk3S2VlcGVyIG9mIHRoZSBwYWdlOiAvIEJyaWFuIEouDQpSZWFyZG9uPGJyZWFyZG9uQHN3Y3Au Y29tPg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpodHRwOi8vaG9ncmFuY2guY29t L21heWVyL3F0bC5odG1sIC0tIExhc3QgUmV2aXNlZDogMjEgTWF5IDIwMDUNClNlbmQgbWFpbCB0 byBld21heWVyQGFvbC5jb20NCg0KT24gMzEgRGVjZW1iZXIgMjAxMSAwNzozMywgWUVTIE5PUEU5 IDx5ZXNAbm9wZTkuY29tPiB3cm90ZToNCg0KPiBIYXZlIHlvdSBldmVyIHdvbmRlcmVkIHdoZXJl IHNvY2tzIGdvIHdoZW4gdGhleSBkaXNhcHBlYXIgLi4uLg0KPiAgOTlzb2Nrcw0KPiA+IEkgY3V0 IGEgaG9sZSBpbiB0aGUgc2lkZSBvZiBteSBjbG90aGVzIGRyeWVyIGJlY2F1c2UgdGhlIGlkbGVy IHdoZWVsDQo+IGJlYXJpbmcgaGFkIGRpZWQuDQo+ID4NCj4gPiBJIGZvdW5kDQo+IG9uZSBiYWQg aWRsZXIgd2hlZWwgLyBiZWFyaW5nIGFzc2VtYmx5DQo+IDc4IGNlbnRzICYgb25lIHBhcmtpbmcg dG9rZW4NCj4gKzggc29ja3MNCj4gb25lIGdyZWVuIGFsbGlnYXRvciBjbGlwIGNhYmxlDQo+DQo+ DQo+IGh0dHBzOi8vcGx1cy5nb29nbGUuY29tL3UvMC9waG90b3MvMTAyMzk2MTc2MjQ3MjgwNDUz NDQzL2FsYnVtcy81NjkxOTg5MTgxNDE4NTY0ODQ5P2hsPWVuDQo+DQo+DQotLQ0KaHR0cDovL3d3 dy5waWNsaXN0LmNvbSBQSUMvU1ggRkFRICYgbGlzdCBhcmNoaXZlDQpWaWV3L2NoYW5nZSB5b3Vy IG1lbWJlcnNoaXAgb3B0aW9ucyBhdA0KaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xp c3RpbmZvL3BpY2xpc3QNCg== .