[ruby-core:111421] Ruby 3.2.0 Released
From:
"NARUSE, Yui via ruby-core" <ruby-core@...>
Date:
2022-12-25 08:31:07 UTC
List:
ruby-core #111421
V2UgYXJlIHBsZWFzZWQgdG8gYW5ub3VuY2UgdGhlIHJlbGVhc2Ugb2YgUnVieSAzLjIuMC4gUnVi eSAzLjIgYWRkcw0KbWFueSBmZWF0dXJlcyBhbmQgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzLg0K DQoNCiMjIFdBU0kgYmFzZWQgV2ViQXNzZW1ibHkgc3VwcG9ydA0KDQpUaGlzIGlzIGFuIGluaXRp YWwgcG9ydCBvZiBXQVNJIGJhc2VkIFdlYkFzc2VtYmx5IHN1cHBvcnQuIFRoaXMNCmVuYWJsZXMg YSBDUnVieSBiaW5hcnkgdG8gYmUgYXZhaWxhYmxlIG9uIGEgV2ViIGJyb3dzZXIsIGEgU2VydmVy bGVzcw0KRWRnZSBlbnZpcm9ubWVudCwgb3Igb3RoZXIga2luZHMgb2YgV2ViQXNzZW1ibHkvV0FT SSBlbWJlZGRlcnMuDQpDdXJyZW50bHkgdGhpcyBwb3J0IHBhc3NlcyBiYXNpYyBhbmQgYm9vdHN0 cmFwIHRlc3Qgc3VpdGVzIG5vdCB1c2luZw0KdGhlIFRocmVhZCBBUEkuDQoNCiFbXShodHRwczov L2kuaW1ndXIuY29tL29wQ2dLeTIucG5nKQ0KDQojIyMgQmFja2dyb3VuZA0KDQpbV2ViQXNzZW1i bHkgKFdhc20pXShodHRwczovL3dlYmFzc2VtYmx5Lm9yZy8pIHdhcyBvcmlnaW5hbGx5DQppbnRy b2R1Y2VkIHRvIHJ1biBwcm9ncmFtcyBzYWZlbHkgYW5kIGZhc3QgaW4gd2ViIGJyb3dzZXJzLiBC dXQgaXRzDQpvYmplY3RpdmUgLSBydW5uaW5nIHByb2dyYW1zIGVmZmljaWVudGx5IHdpdGggc2Vj dXJpdHkgb24gdmFyaW91cw0KZW52aXJvbm1lbnQgLSBpcyBsb25nIHdhbnRlZCBub3Qgb25seSBm b3Igd2ViIGJ1dCBhbHNvIGJ5IGdlbmVyYWwNCmFwcGxpY2F0aW9ucy4NCg0KW1dBU0kgKFRoZSBX ZWJBc3NlbWJseSBTeXN0ZW0gSW50ZXJmYWNlKV0oaHR0cHM6Ly93YXNpLmRldi8pIGlzDQpkZXNp Z25lZCBmb3Igc3VjaCB1c2UgY2FzZXMuIFRob3VnaCBzdWNoIGFwcGxpY2F0aW9ucyBuZWVkIHRv DQpjb21tdW5pY2F0ZSB3aXRoIG9wZXJhdGluZyBzeXN0ZW1zLCBXZWJBc3NlbWJseSBydW5zIG9u IGEgdmlydHVhbA0KbWFjaGluZSB3aGljaCBkaWRuJ3QgaGF2ZSBhIHN5c3RlbSBpbnRlcmZhY2Uu IFdBU0kgc3RhbmRhcmRpemVzIGl0Lg0KDQpXZWJBc3NlbWJseS9XQVNJIHN1cHBvcnQgaW4gUnVi eSBpbnRlbmRzIHRvIGxldmVyYWdlIHRob3NlIHByb2plY3RzLg0KSXQgZW5hYmxlcyBSdWJ5IGRl dmVsb3BlcnMgdG8gd3JpdGUgYXBwbGljYXRpb25zIHdoaWNoIHJ1biBvbiBzdWNoDQpwcm9taXNl ZCBwbGF0Zm9ybXMuDQoNCiMjIyBVc2UgY2FzZQ0KDQpUaGlzIHN1cHBvcnQgZW5jb3VyYWdlcyBk ZXZlbG9wZXJzIHRvIHV0aWxpemUgQ1J1YnkgaW4gYSBXZWJBc3NlbWJseQ0KZW52aXJvbm1lbnQu IEFuIGV4YW1wbGUgdXNlIGNhc2UgaXMgW1RyeVJ1YnkNCnBsYXlncm91bmRdKGh0dHBzOi8vdHJ5 LnJ1YnktbGFuZy5vcmcvcGxheWdyb3VuZC8pJ3MgQ1J1Ynkgc3VwcG9ydC4NCk5vdyB5b3UgY2Fu IHRyeSBvcmlnaW5hbCBDUnVieSBpbiB5b3VyIHdlYiBicm93c2VyLg0KDQojIyMgVGVjaG5pY2Fs IHBvaW50cw0KDQpUb2RheeKAmXMgV0FTSSBhbmQgV2ViQXNzZW1ibHkgaXRzZWxmIGlzIG1pc3Np bmcgc29tZSBmZWF0dXJlcyB0bw0KaW1wbGVtZW50IEZpYmVyLCBleGNlcHRpb24sIGFuZCBHQyBi ZWNhdXNlIGl04oCZcyBzdGlsbCBldm9sdmluZywgYW5kDQphbHNvIGZvciBzZWN1cml0eSByZWFz b25zLiBTbyBDUnVieSBmaWxscyB0aGUgZ2FwIGJ5IHVzaW5nIEFzeW5jaWZ5LA0Kd2hpY2ggaXMg YSBiaW5hcnkgdHJhbnNmb3JtYXRpb24gdGVjaG5pcXVlIHRvIGNvbnRyb2wgZXhlY3V0aW9uIGlu DQp1c2VybGFuZC4NCg0KSW4gYWRkaXRpb24sIHdlIGJ1aWx0IFthIFZGUyBvbiB0b3Agb2YNCldB U0ldKGh0dHBzOi8vZ2l0aHViLmNvbS9rYXRlaW5vaWdha3VrdW4vd2FzaS12ZnMvd2lraS9HZXR0 aW5nLVN0YXJ0ZWQtd2l0aC1DUnVieSkNCnNvIHRoYXQgd2UgY2FuIGVhc2lseSBwYWNrIFJ1Ynkg YXBwcyBpbnRvIGEgc2luZ2xlIC53YXNtIGZpbGUuIFRoaXMNCm1ha2VzIGRpc3RyaWJ1dGlvbiBv ZiBSdWJ5IGFwcHMgYSBiaXQgZWFzaWVyLg0KDQojIyMgUmVsYXRlZCBsaW5rcw0KDQoqIFtBZGQg V0FTSSBiYXNlZCBXZWJBc3NlbWJseSBzdXBwb3J0DQojNTQwN10oaHR0cHM6Ly9naXRodWIuY29t L3J1YnkvcnVieS9wdWxsLzU0MDcpDQoqIFtBbiBVcGRhdGUgb24gV2ViQXNzZW1ibHkvV0FTSSBT dXBwb3J0IGluDQpSdWJ5XShodHRwczovL2l0bmV4dC5pby9maW5hbC1yZXBvcnQtd2ViYXNzZW1i bHktd2FzaS1zdXBwb3J0LWluLXJ1YnktNGFmYWNlN2Q5MGM5KQ0KDQoNCiMjIFByb2R1Y3Rpb24t cmVhZHkgWUpJVA0KDQohW10oaHR0cHM6Ly9pLmltZ3VyLmNvbS9YOXVsZmFjLnBuZykNCg0KKiBZ SklUIGlzIG5vIGxvbmdlciBleHBlcmltZW50YWwNCiAgICAqIEhhcyBiZWVuIHRlc3RlZCBvbiBw cm9kdWN0aW9uIHdvcmtsb2FkcyBmb3Igb3ZlciBhIHllYXIgYW5kDQpwcm92ZW4gdG8gYmUgcXVp dGUgc3RhYmxlLg0KKiBZSklUIG5vdyBzdXBwb3J0cyBib3RoIHg4Ni02NCBhbmQgYXJtNjQvYWFy Y2g2NCBDUFVzIG9uIExpbnV4LA0KTWFjT1MsIEJTRCBhbmQgb3RoZXIgVU5JWCBwbGF0Zm9ybXMu DQogICAgKiBUaGlzIHJlbGVhc2UgYnJpbmdzIHN1cHBvcnQgZm9yIEFwcGxlIE0xL00yLCBBV1Mg R3Jhdml0b24sDQpSYXNwYmVycnkgUGkgNCBhbmQgbW9yZS4NCiogQnVpbGRpbmcgWUpJVCBub3cg cmVxdWlyZXMgUnVzdCAxLjU4LjArLiBbW0ZlYXR1cmUgIzE4NDgxXV0NCiAgICAqIEluIG9yZGVy IHRvIGVuc3VyZSB0aGF0IENSdWJ5IGlzIGJ1aWx0IHdpdGggWUpJVCwgcGxlYXNlIGluc3RhbGwN CmBydXN0Y2AgPj0gMS41OC4wDQogICAgICBiZWZvcmUgcnVubmluZyB0aGUgYC4vY29uZmlndXJl YCBzY3JpcHQuDQogICAgKiBQbGVhc2UgcmVhY2ggb3V0IHRvIHRoZSBZSklUIHRlYW0gc2hvdWxk IHlvdSBydW4gaW50byBhbnkgaXNzdWVzLg0KKiBUaGUgWUpJVCAzLjIgcmVsZWFzZSBpcyBmYXN0 ZXIgdGhhbiAzLjEsIGFuZCBoYXMgYWJvdXQgMS8zIGFzIG11Y2gNCm1lbW9yeSBvdmVyaGVhZC4N CiAgKiBPdmVyYWxsIFlKSVQgaXMgNDElIGZhc3RlciAoZ2VvbWV0cmljIG1lYW4pIHRoYW4gdGhl IFJ1YnkNCmludGVycHJldGVyIG9uIFt5aml0LWJlbmNoXShodHRwczovL2dpdGh1Yi5jb20vU2hv cGlmeS95aml0LWJlbmNoKS4NCiAgKiBQaHlzaWNhbCBtZW1vcnkgZm9yIEpJVCBjb2RlIGlzIGxh emlseSBhbGxvY2F0ZWQuIFVubGlrZSBSdWJ5IDMuMSwNCiAgICB0aGUgUlNTIG9mIGEgUnVieSBw cm9jZXNzIGlzIG1pbmltaXplZCBiZWNhdXNlIHZpcnR1YWwgbWVtb3J5IHBhZ2VzDQogICAgYWxs b2NhdGVkIGJ5IGAtLXlqaXQtZXhlYy1tZW0tc2l6ZWAgd2lsbCBub3QgYmUgbWFwcGVkIHRvIHBo eXNpY2FsDQogICAgbWVtb3J5IHBhZ2VzIHVudGlsIGFjdHVhbGx5IHV0aWxpemVkIGJ5IEpJVCBj b2RlLg0KICAqIEludHJvZHVjZSBDb2RlIEdDIHRoYXQgZnJlZXMgYWxsIGNvZGUgcGFnZXMgd2hl biB0aGUgbWVtb3J5IGNvbnN1bXB0aW9uDQogICAgYnkgSklUIGNvZGUgcmVhY2hlcyBgLS15aml0 LWV4ZWMtbWVtLXNpemVgLg0KICAqIGBSdWJ5Vk06OllKSVQucnVudGltZV9zdGF0c2AgcmV0dXJu cyBDb2RlIEdDIG1ldHJpY3MgaW4gYWRkaXRpb24gdG8NCiAgICBleGlzdGluZyBgaW5saW5lX2Nv ZGVfc2l6ZWAgYW5kIGBvdXRsaW5lZF9jb2RlX3NpemVgIGtleXM6DQogICAgYGNvZGVfZ2NfY291 bnRgLCBgbGl2ZV9wYWdlX2NvdW50YCwgYGZyZWVkX3BhZ2VfY291bnRgLCBhbmQNCmBmcmVlZF9j b2RlX3NpemVgLg0KKiBNb3N0IG9mIHRoZSBzdGF0aXN0aWNzIHByb2R1Y2VkIGJ5IGBSdWJ5Vk06 OllKSVQucnVudGltZV9zdGF0c2AgYXJlDQpub3cgYXZhaWxhYmxlIGluIHJlbGVhc2UgYnVpbGRz Lg0KICAgICogU2ltcGx5IHJ1biBydWJ5IHdpdGggYC0teWppdC1zdGF0c2AgdG8gY29tcHV0ZSBh bmQgZHVtcCBzdGF0cw0KKGluY3VycyBzb21lIHJ1bi10aW1lIG92ZXJoZWFkKS4NCiogWUpJVCBp cyBub3cgb3B0aW1pemVkIHRvIHRha2UgYWR2YW50YWdlIG9mIG9iamVjdCBzaGFwZXMuIFtbRmVh dHVyZSAjMTg3NzZdXQ0KKiBUYWtlIGFkdmFudGFnZSBvZiBmaW5lci1ncmFpbmVkIGNvbnN0YW50 IGludmFsaWRhdGlvbiB0byBpbnZhbGlkYXRlDQpsZXNzIGNvZGUgd2hlbiBkZWZpbmluZyBuZXcg Y29uc3RhbnRzLiBbW0ZlYXR1cmUgIzE4NTg5XV0NCiogVGhlIGRlZmF1bHQgYC0teWppdC1leGVj LW1lbS1zaXplYCBpcyBjaGFuZ2VkIHRvIDY0IChNaUIpLg0KKiBUaGUgZGVmYXVsdCBgLS15aml0 LWNhbGwtdGhyZXNob2xkYCBpcyBjaGFuZ2VkIHRvIDMwLg0KDQojIyBSZWdleHAgaW1wcm92ZW1l bnRzIGFnYWluc3QgUmVEb1MNCg0KSXQgaXMga25vd24gdGhhdCBSZWdleHAgbWF0Y2hpbmcgbWF5 IHRha2UgdW5leHBlY3RlZGx5IGxvbmcuIElmIHlvdXINCmNvZGUgYXR0ZW1wdHMgdG8gbWF0Y2gg YSBwb3NzaWJseSBpbmVmZmljaWVudCBSZWdleHAgYWdhaW5zdCBhbg0KdW50cnVzdGVkIGlucHV0 LCBhbiBhdHRhY2tlciBtYXkgZXhwbG9pdCBpdCBmb3IgZWZmaWNpZW50IERlbmlhbCBvZg0KU2Vy dmljZSAoc28tY2FsbGVkIFJlZ3VsYXIgZXhwcmVzc2lvbiBEb1MsIG9yIFJlRG9TKS4NCg0KV2Ug aGF2ZSBpbnRyb2R1Y2VkIHR3byBpbXByb3ZlbWVudHMgdGhhdCBzaWduaWZpY2FudGx5IG1pdGln YXRlIFJlRG9TLg0KDQojIyMgSW1wcm92ZWQgUmVnZXhwIG1hdGNoaW5nIGFsZ29yaXRobQ0KDQpT aW5jZSBSdWJ5IDMuMiwgUmVnZXhwJ3MgbWF0Y2hpbmcgYWxnb3JpdGhtIGhhcyBiZWVuIGdyZWF0 bHkgaW1wcm92ZWQNCmJ5IHVzaW5nIGEgbWVtb2l6YXRpb24gdGVjaG5pcXVlLg0KDQpgYGANCiMg VGhpcyBtYXRjaCB0YWtlcyAxMCBzZWMuIGluIFJ1YnkgMy4xLCBhbmQgMC4wMDMgc2VjLiBpbiBS dWJ5IDMuMg0KDQovXmEqYj9hKiQvID1+ICJhIiAqIDUwMDAwICsgIngiDQpgYGANCg0KIVtdKGh0 dHBzOi8vY2FjaGUucnVieS1sYW5nLm9yZy9wdWIvbWVkaWEvcnVieTMyMF9yZWdleF8xLnBuZykN CiFbXShodHRwczovL2NhY2hlLnJ1YnktbGFuZy5vcmcvcHViL21lZGlhL3J1YnkzMjBfcmVnZXhf Mi5wbmcpDQoNClRoZSBpbXByb3ZlZCBtYXRjaGluZyBhbGdvcml0aG0gYWxsb3dzIG1vc3QgUmVn ZXhwIG1hdGNoaW5nIChhYm91dCA5MCUNCmluIG91ciBleHBlcmltZW50cykgdG8gYmUgY29tcGxl dGVkIGluIGxpbmVhciB0aW1lLg0KDQooRm9yIHByZXZpZXcgdXNlcnM6IHRoaXMgb3B0aW1pemF0 aW9uIG1heSBjb25zdW1lIG1lbW9yeSBwcm9wb3J0aW9uYWwNCnRvIHRoZSBpbnB1dCBsZW5ndGgg Zm9yIGVhY2ggbWF0Y2guIFdlIGV4cGVjdCBubyBwcmFjdGljYWwgcHJvYmxlbXMgdG8NCmFyaXNl IGJlY2F1c2UgdGhpcyBtZW1vcnkgYWxsb2NhdGlvbiBpcyB1c3VhbGx5IGRlbGF5ZWQsIGFuZCBh IG5vcm1hbA0KUmVnZXhwIG1hdGNoIHNob3VsZCBjb25zdW1lIGF0IG1vc3QgMTAgdGltZXMgYXMg bXVjaCBtZW1vcnkgYXMgdGhlDQppbnB1dCBsZW5ndGguIElmIHlvdSBydW4gb3V0IG9mIG1lbW9y eSB3aGVuIG1hdGNoaW5nIFJlZ2V4cHMgaW4gYQ0KcmVhbC13b3JsZCBhcHBsaWNhdGlvbiwgcGxl YXNlIHJlcG9ydCBpdC4pDQoNClRoZSBvcmlnaW5hbCBwcm9wb3NhbCBpcyBodHRwczovL2J1Z3Mu cnVieS1sYW5nLm9yZy9pc3N1ZXMvMTkxMDQNCg0KIyMjIFJlZ2V4cCB0aW1lb3V0DQoNClRoZSBv cHRpbWl6YXRpb24gYWJvdmUgY2Fubm90IGJlIGFwcGxpZWQgdG8gc29tZSBraW5kIG9mIHJlZ3Vs YXINCmV4cHJlc3Npb25zLCBzdWNoIGFzIHRob3NlIGluY2x1ZGluZyBhZHZhbmNlZCBmZWF0dXJl cyAoZS5nLiwNCmJhY2stcmVmZXJlbmNlcyBvciBsb29rLWFyb3VuZCksIG9yIHdpdGggYSBodWdl IGZpeGVkIG51bWJlciBvZg0KcmVwZXRpdGlvbnMuIEFzIGEgZmFsbGJhY2sgbWVhc3VyZSwgYSB0 aW1lb3V0IGZlYXR1cmUgZm9yIFJlZ2V4cA0KbWF0Y2hlcyBpcyBhbHNvIGludHJvZHVjZWQuDQoN CmBgYHJ1YnkNClJlZ2V4cC50aW1lb3V0ID0gMS4wDQoNCi9eYSpiP2EqKClcMSQvID1+ICJhIiAq IDUwMDAwICsgIngiDQojPT4gUmVnZXhwOjpUaW1lb3V0RXJyb3IgaXMgcmFpc2VkIGluIG9uZSBz ZWNvbmQNCmBgYA0KDQpOb3RlIHRoYXQgYFJlZ2V4cC50aW1lb3V0YCBpcyBhIGdsb2JhbCBjb25m aWd1cmF0aW9uLiBJZiB5b3Ugd2FudCB0bw0KdXNlIGRpZmZlcmVudCB0aW1lb3V0IHNldHRpbmdz IGZvciBzb21lIHNwZWNpYWwgUmVnZXhwcywgeW91IG1heSB3YW50DQp0byB1c2UgdGhlIGB0aW1l b3V0YCBrZXl3b3JkIGZvciBgUmVnZXhwLm5ld2AuDQoNCmBgYHJ1YnkNClJlZ2V4cC50aW1lb3V0 ID0gMS4wDQoNCiMgVGhpcyByZWdleHAgaGFzIG5vIHRpbWVvdXQNCmxvbmdfdGltZV9yZSA9IFJl Z2V4cC5uZXcoIl5hKmI/YSooKVwxJCIsIHRpbWVvdXQ6IEZsb2F0OjpJTkZJTklUWSkNCg0KbG9u Z190aW1lX3JlID1+ICJhIiAqIDUwMDAwICsgIngiICMgbmV2ZXIgaW50ZXJydXB0ZWQNCmBgYA0K DQpUaGUgb3JpZ2luYWwgcHJvcG9zYWwgaXMgaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNz dWVzLzE3ODM3DQoNCiMjIE90aGVyIE5vdGFibGUgTmV3IEZlYXR1cmVzDQoNCiMjIyBTeW50YXhT dWdnZXN0DQoNCiogVGhlIGZlYXR1cmUgb2YgYHN5bnRheF9zdWdnZXN0YCAoZm9ybWVybHkgYGRl YWRfZW5kYCkgaXMgaW50ZWdyYXRlZA0KaW50byBSdWJ5LiBUaGlzIGhlbHBzIHlvdSBmaW5kIHRo ZSBwb3NpdGlvbiBvZiBlcnJvcnMgc3VjaCBhcyBtaXNzaW5nDQpvciBzdXBlcmZsdW91cyBgZW5k YHMsIHRvIGdldCB5b3UgYmFjayBvbiB5b3VyIHdheSBmYXN0ZXIsIHN1Y2ggYXMgaW4NCnRoZSBm b2xsb3dpbmcgZXhhbXBsZToNCg0KICBgYGANCiAgVW5tYXRjaGVkIGBlbmQnLCBtaXNzaW5nIGtl eXdvcmQgKGBkbycsIGBkZWZgLCBgaWZgLCBldGMuKSA/DQoNCiAgICAxICBjbGFzcyBEb2cNCiAg PiAyICAgIGRlZmJhcmsNCiAgPiAzICAgIGVuZA0KICAgIDQgIGVuZA0KICBgYGANCg0KICBbW0Zl YXR1cmUgIzE4MTU5XV0NCg0KDQojIyMgRXJyb3JIaWdobGlnaHQNCg0KKiBOb3cgaXQgcG9pbnRz IGF0IHRoZSByZWxldmFudCBhcmd1bWVudChzKSBmb3IgVHlwZUVycm9yIGFuZCBBcmd1bWVudEVy cm9yDQoNCmBgYA0KdGVzdC5yYjoyOmluIGArJzogbmlsIGNhbid0IGJlIGNvZXJjZWQgaW50byBJ bnRlZ2VyIChUeXBlRXJyb3IpDQoNCnN1bSA9IGFyeVswXSArIGFyeVsxXQ0KICAgICAgICAgICAg ICAgXl5eXl5eDQpgYGANCg0KIyMjIExhbmd1YWdlDQoNCiogQW5vbnltb3VzIHJlc3QgYW5kIGtl eXdvcmQgcmVzdCBhcmd1bWVudHMgY2FuIG5vdyBiZSBwYXNzZWQgYXMNCiAgYXJndW1lbnRzLCBp bnN0ZWFkIG9mIGp1c3QgdXNlZCBpbiBtZXRob2QgcGFyYW1ldGVycy4NCiAgW1tGZWF0dXJlICMx ODM1MV1dDQoNCiAgICBgYGBydWJ5DQogICAgZGVmIGZvbygqKQ0KICAgICAgYmFyKCopDQogICAg ZW5kDQogICAgZGVmIGJheigqKikNCiAgICAgIHF1dXgoKiopDQogICAgZW5kDQogICAgYGBgDQoN CiogQSBwcm9jIHRoYXQgYWNjZXB0cyBhIHNpbmdsZSBwb3NpdGlvbmFsIGFyZ3VtZW50IGFuZCBr ZXl3b3JkcyB3aWxsDQogIG5vIGxvbmdlciBhdXRvc3BsYXQuIFtbQnVnICMxODYzM11dDQoNCiAg YGBgcnVieQ0KICBwcm9je3xhLCAqKmt8IGF9LmNhbGwoWzEsIDJdKQ0KICAjIFJ1YnkgMy4xIGFu ZCBiZWZvcmUNCiAgIyA9PiAxDQogICMgUnVieSAzLjIgYW5kIGFmdGVyDQogICMgPT4gWzEsIDJd DQogIGBgYA0KDQoqIENvbnN0YW50IGFzc2lnbm1lbnQgZXZhbHVhdGlvbiBvcmRlciBmb3IgY29u c3RhbnRzIHNldCBvbiBleHBsaWNpdA0KICBvYmplY3RzIGhhcyBiZWVuIG1hZGUgY29uc2lzdGVu dCB3aXRoIHNpbmdsZSBhdHRyaWJ1dGUgYXNzaWdubWVudA0KICBldmFsdWF0aW9uIG9yZGVyLiBX aXRoIHRoaXMgY29kZToNCg0KICAgIGBgYHJ1YnkNCiAgICBmb286OkJBUiA9IGJheg0KICAgIGBg YA0KDQogIGBmb29gIGlzIG5vdyBjYWxsZWQgYmVmb3JlIGBiYXpgLiBTaW1pbGFybHksIGZvciBt dWx0aXBsZSBhc3NpZ25tZW50cw0KICB0byBjb25zdGFudHMsIGxlZnQtdG8tcmlnaHQgZXZhbHVh dGlvbiBvcmRlciBpcyB1c2VkLiBXaXRoIHRoaXMNCiAgY29kZToNCg0KICAgIGBgYHJ1YnkNCiAg ICAgIGZvbzE6OkJBUjEsIGZvbzI6OkJBUjIgPSBiYXoxLCBiYXoyDQogICAgYGBgDQoNCiAgVGhl IGZvbGxvd2luZyBldmFsdWF0aW9uIG9yZGVyIGlzIG5vdyB1c2VkOg0KDQogIDEuIGBmb28xYA0K ICAyLiBgZm9vMmANCiAgMy4gYGJhejFgDQogIDQuIGBiYXoyYA0KDQogIFtbQnVnICMxNTkyOF1d DQoNCiogVGhlIGZpbmQgcGF0dGVybiBpcyBubyBsb25nZXIgZXhwZXJpbWVudGFsLg0KICBbW0Zl YXR1cmUgIzE4NTg1XV0NCg0KKiBNZXRob2RzIHRha2luZyBhIHJlc3QgcGFyYW1ldGVyIChsaWtl IGAqYXJnc2ApIGFuZCB3aXNoaW5nIHRvIGRlbGVnYXRlIGtleXdvcmQNCiAgYXJndW1lbnRzIHRo cm91Z2ggYGZvbygqYXJncylgIG11c3Qgbm93IGJlIG1hcmtlZCB3aXRoIGBydWJ5Ml9rZXl3b3Jk c2ANCiAgKGlmIG5vdCBhbHJlYWR5IHRoZSBjYXNlKS4gSW4gb3RoZXIgd29yZHMsIGFsbCBtZXRo b2RzIHdpc2hpbmcgdG8gZGVsZWdhdGUNCiAga2V5d29yZCBhcmd1bWVudHMgdGhyb3VnaCBgKmFy Z3NgIG11c3Qgbm93IGJlIG1hcmtlZCB3aXRoIGBydWJ5Ml9rZXl3b3Jkc2AsDQogIHdpdGggbm8g ZXhjZXB0aW9uLiBUaGlzIHdpbGwgbWFrZSBpdCBlYXNpZXIgdG8gdHJhbnNpdGlvbiB0byBvdGhl ciB3YXlzIG9mDQogIGRlbGVnYXRpb24gb25jZSBhIGxpYnJhcnkgY2FuIHJlcXVpcmUgUnVieSAz Ky4gUHJldmlvdXNseSwgdGhlDQpgcnVieTJfa2V5d29yZHNgDQogIGZsYWcgd2FzIGtlcHQgaWYg dGhlIHJlY2VpdmluZyBtZXRob2QgdG9vayBgKmFyZ3NgLCBidXQgdGhpcyB3YXMgYSBidWcgYW5k IGFuDQogIGluY29uc2lzdGVuY3kuIEEgZ29vZCB0ZWNobmlxdWUgdG8gZmluZCBwb3RlbnRpYWxs eSBtaXNzaW5nIGBydWJ5Ml9rZXl3b3Jkc2ANCiAgaXMgdG8gcnVuIHRoZSB0ZXN0IHN1aXRlLCBm aW5kIHRoZSBsYXN0IG1ldGhvZCB3aGljaCBtdXN0DQogIHJlY2VpdmUga2V5d29yZCBhcmd1bWVu dHMgZm9yIGVhY2ggcGxhY2Ugd2hlcmUgdGhlIHRlc3Qgc3VpdGUgZmFpbHMsDQphbmQgdXNlIGBw dXRzIG5pbCwgY2FsbGVyLCBuaWxgIHRoZXJlLiBUaGVuIGNoZWNrIHRoYXQgZWFjaA0KICBtZXRo b2QvYmxvY2sgb24gdGhlIGNhbGwgY2hhaW4gd2hpY2ggbXVzdCBkZWxlZ2F0ZSBrZXl3b3JkcyBp cw0KY29ycmVjdGx5IG1hcmtlZA0KICB3aXRoIGBydWJ5Ml9rZXl3b3Jkc2AuIFtbQnVnICMxODYy NV1dIFtbQnVnICMxNjQ2Nl1dDQoNCiAgICBgYGBydWJ5DQogICAgZGVmIHRhcmdldCgqKmt3KQ0K ICAgIGVuZA0KDQogICAgIyBBY2NpZGVudGFsbHkgd29ya2VkIHdpdGhvdXQgcnVieTJfa2V5d29y ZHMgaW4gUnVieSAyLjctMy4xLCBydWJ5Ml9rZXl3b3Jkcw0KICAgICMgbmVlZGVkIGluIDMuMisu IEp1c3QgbGlrZSAoKmFyZ3MsICoqa3dhcmdzKSBvciAoLi4uKSB3b3VsZCBiZSBuZWVkZWQgb24N CiAgICAjIGJvdGggI2ZvbyBhbmQgI2JhciB3aGVuIG1pZ3JhdGluZyBhd2F5IGZyb20gcnVieTJf a2V5d29yZHMuDQogICAgcnVieTJfa2V5d29yZHMgZGVmIGJhcigqYXJncykNCiAgICAgIHRhcmdl dCgqYXJncykNCiAgICBlbmQNCg0KICAgIHJ1YnkyX2tleXdvcmRzIGRlZiBmb28oKmFyZ3MpDQog ICAgICBiYXIoKmFyZ3MpDQogICAgZW5kDQoNCiAgICBmb28oazogMSkNCiAgICBgYGANCg0KIyMg UGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzDQoNCiMjIyBNSklUDQoNCiogVGhlIE1KSVQgY29tcGls ZXIgaXMgcmUtaW1wbGVtZW50ZWQgaW4gUnVieSBhcyBgcnVieV92bS9taml0L2NvbXBpbGVyYC4N CiogTUpJVCBjb21waWxlciBpcyBleGVjdXRlZCB1bmRlciBhIGZvcmtlZCBSdWJ5IHByb2Nlc3Mg aW5zdGVhZCBvZg0KICBkb2luZyBpdCBpbiBhIG5hdGl2ZSB0aHJlYWQgY2FsbGVkIE1KSVQgd29y a2VyLiBbW0ZlYXR1cmUgIzE4OTY4XV0NCiAgICAqIEFzIGEgcmVzdWx0LCBNaWNyb3NvZnQgVmlz dWFsIFN0dWRpbyAoTVNXSU4pIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuDQoqIE1pbkdXIGlzIG5v IGxvbmdlciBzdXBwb3J0ZWQuIFtbRmVhdHVyZSAjMTg4MjRdXQ0KKiBSZW5hbWUgYC0tbWppdC1t aW4tY2FsbHNgIHRvIGAtLW1qaXQtY2FsbC10aHJlc2hvbGRgLg0KKiBDaGFuZ2UgZGVmYXVsdCBg LS1taml0LW1heC1jYWNoZWAgYmFjayBmcm9tIDEwMDAwIHRvIDEwMC4NCg0KIyMjIFB1YkdydWIN Cg0KKiBCdW5kbGVyIDIuNCBub3cgdXNlcw0KW1B1YkdydWJdKGh0dHBzOi8vZ2l0aHViLmNvbS9q aGF3dGhvcm4vcHViX2dydWIpIHJlc29sdmVyIGluc3RlYWQgb2YNCltNb2xpbmlsbG9dKGh0dHBz Oi8vZ2l0aHViLmNvbS9Db2NvYVBvZHMvTW9saW5pbGxvKS4NCg0KICAqIFB1YkdydWIgaXMgdGhl IG5leHQgZ2VuZXJhdGlvbiBzb2x2aW5nIGFsZ29yaXRobSB1c2VkIGJ5IGBwdWJgDQpwYWNrYWdl IG1hbmFnZXIgZm9yIHRoZSBEYXJ0IHByb2dyYW1taW5nIGxhbmd1YWdlLg0KICAqIFlvdSBtYXkg Z2V0IGRpZmZlcmVudCByZXNvbHV0aW9uIHJlc3VsdCBhZnRlciB0aGlzIGNoYW5nZS4gUGxlYXNl DQpyZXBvcnQgc3VjaCBjYXNlcyB0byBbUnVieUdlbXMvQnVuZGxlcg0KaXNzdWVzXShodHRwczov L2dpdGh1Yi5jb20vcnVieWdlbXMvcnVieWdlbXMvaXNzdWVzKQ0KDQoqIFJ1YnlHZW1zIHN0aWxs IHVzZXMgTW9saW5pbGxvIHJlc29sdmVyIGluIFJ1YnkgMy4yLiBXZSBwbGFuIHRvDQpyZXBsYWNl IGl0IHdpdGggUHViR3J1YiBpbiB0aGUgZnV0dXJlLg0KDQojIyBPdGhlciBub3RhYmxlIGNoYW5n ZXMgc2luY2UgMy4xDQoNCiogRGF0YQ0KICAgICogTmV3IGNvcmUgY2xhc3MgdG8gcmVwcmVzZW50 IHNpbXBsZSBpbW11dGFibGUgdmFsdWUgb2JqZWN0LiBUaGUgY2xhc3MgaXMNCiAgICAgIHNpbWls YXIgdG8gU3RydWN0IGFuZCBwYXJ0aWFsbHkgc2hhcmVzIGFuIGltcGxlbWVudGF0aW9uLCBidXQg aGFzIG1vcmUNCiAgICAgIGxlYW4gYW5kIHN0cmljdCBBUEkuIFtbRmVhdHVyZSAjMTYxMjJdXQ0K DQogICAgICAgIGBgYHJ1YnkNCiAgICAgICAgTWVhc3VyZSA9IERhdGEuZGVmaW5lKDphbW91bnQs IDp1bml0KQ0KICAgICAgICBkaXN0YW5jZSA9IE1lYXN1cmUubmV3KDEwMCwgJ2ttJykgICAgICAg ICAgICAjPT4gIzxkYXRhDQpNZWFzdXJlIGFtb3VudD0xMDAsIHVuaXQ9ImttIj4NCiAgICAgICAg d2VpZ2h0ID0gTWVhc3VyZS5uZXcoYW1vdW50OiA1MCwgdW5pdDogJ2tnJykgIz0+ICM8ZGF0YQ0K TWVhc3VyZSBhbW91bnQ9NTAsIHVuaXQ9ImtnIj4NCiAgICAgICAgd2VpZ2h0LndpdGgoYW1vdW50 OiA0MCkgICAgICAgICAgICAgICAgICAgICAgIz0+ICM8ZGF0YQ0KTWVhc3VyZSBhbW91bnQ9NDAs IHVuaXQ9ImtnIj4NCiAgICAgICAgd2VpZ2h0LmFtb3VudCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIz0+IDUwDQogICAgICAgIHdlaWdodC5hbW91bnQgPSA0MCAgICAgICAgICAgICAg ICAgICAgICAgICAgICM9Pg0KTm9NZXRob2RFcnJvcjogdW5kZWZpbmVkIG1ldGhvZCBgYW1vdW50 PScNCiAgICAgICAgYGBgDQoNCiogSGFzaA0KICAgICogYEhhc2gjc2hpZnRgIG5vdyBhbHdheXMg cmV0dXJucyBuaWwgaWYgdGhlIGhhc2ggaXMNCiAgICAgIGVtcHR5LCBpbnN0ZWFkIG9mIHJldHVy bmluZyB0aGUgZGVmYXVsdCB2YWx1ZSBvcg0KICAgICAgY2FsbGluZyB0aGUgZGVmYXVsdCBwcm9j LiBbW0J1ZyAjMTY5MDhdXQ0KDQoqIE1hdGNoRGF0YQ0KICAgICogYE1hdGNoRGF0YSNieXRlb2Zm c2V0YCBoYXMgYmVlbiBhZGRlZC4gW1tGZWF0dXJlICMxMzExMF1dDQoNCiogTW9kdWxlDQogICAg KiBgTW9kdWxlLnVzZWRfcmVmaW5lbWVudHNgIGhhcyBiZWVuIGFkZGVkLiBbW0ZlYXR1cmUgIzE0 MzMyXV0NCiAgICAqIGBNb2R1bGUjcmVmaW5lbWVudHNgIGhhcyBiZWVuIGFkZGVkLiBbW0ZlYXR1 cmUgIzEyNzM3XV0NCiAgICAqIGBNb2R1bGUjY29uc3RfYWRkZWRgIGhhcyBiZWVuIGFkZGVkLiBb W0ZlYXR1cmUgIzE3ODgxXV0NCg0KKiBQcm9jDQogICAgKiBgUHJvYyNkdXBgIHJldHVybnMgYW4g aW5zdGFuY2Ugb2Ygc3ViY2xhc3MuIFtbQnVnICMxNzU0NV1dDQogICAgKiBgUHJvYyNwYXJhbWV0 ZXJzYCBub3cgYWNjZXB0cyBsYW1iZGEga2V5d29yZC4gW1tGZWF0dXJlICMxNTM1N11dDQoNCiog UmVmaW5lbWVudA0KICAgICogYFJlZmluZW1lbnQjcmVmaW5lZF9jbGFzc2AgaGFzIGJlZW4gYWRk ZWQuIFtbRmVhdHVyZSAjMTI3MzddXQ0KDQoqIFJ1YnlWTTo6QWJzdHJhY3RTeW50YXhUcmVlDQog ICAgKiBBZGQgYGVycm9yX3RvbGVyYW50YCBvcHRpb24gZm9yIGBwYXJzZWAsIGBwYXJzZV9maWxl YCBhbmQgYG9mYC4NCltbRmVhdHVyZSAjMTkwMTNdXQ0KICAgICAgV2l0aCB0aGlzIG9wdGlvbg0K ICAgICAgICAxLiBTeW50YXhFcnJvciBpcyBzdXBwcmVzc2VkDQogICAgICAgIDIuIEFTVCBpcyBy ZXR1cm5lZCBmb3IgaW52YWxpZCBpbnB1dA0KICAgICAgICAzLiBgZW5kYCBpcyBjb21wbGVtZW50 ZWQgd2hlbiBhIHBhcnNlciByZWFjaGVzIHRvIHRoZSBlbmQgb2YNCmlucHV0IGJ1dCBgZW5kYCBp cyBpbnN1ZmZpY2llbnQNCiAgICAgICAgNC4gYGVuZGAgaXMgdHJlYXRlZCBhcyBrZXl3b3JkIGJh c2VkIG9uIGluZGVudA0KDQogICAgICAgIGBgYHJ1YnkNCiAgICAgICAgIyBXaXRob3V0IGVycm9y X3RvbGVyYW50IG9wdGlvbg0KICAgICAgICByb290ID0gUnVieVZNOjpBYnN0cmFjdFN5bnRheFRy ZWUucGFyc2UoPDx+UlVCWSkNCiAgICAgICAgZGVmIG0NCiAgICAgICAgICBhID0gMTANCiAgICAg ICAgICBpZg0KICAgICAgICBlbmQNCiAgICAgICAgUlVCWQ0KICAgICAgICAjID0+IDxpbnRlcm5h bDphc3Q+OjMzOmluIGBwYXJzZSc6IHN5bnRheCBlcnJvciwgdW5leHBlY3RlZA0KYGVuZCcgKFN5 bnRheEVycm9yKQ0KDQogICAgICAgICMgV2l0aCBlcnJvcl90b2xlcmFudCBvcHRpb24NCiAgICAg ICAgcm9vdCA9IFJ1YnlWTTo6QWJzdHJhY3RTeW50YXhUcmVlLnBhcnNlKDw8flJVQlksIGVycm9y X3RvbGVyYW50OiB0cnVlKQ0KICAgICAgICBkZWYgbQ0KICAgICAgICAgIGEgPSAxMA0KICAgICAg ICAgIGlmDQogICAgICAgIGVuZA0KICAgICAgICBSVUJZDQogICAgICAgIHAgcm9vdCAjID0+ICM8 UnVieVZNOjpBYnN0cmFjdFN5bnRheFRyZWU6Ok5vZGU6U0NPUEVAMTowLTQ6Mz4NCg0KICAgICAg ICAjIGBlbmRgIGlzIHRyZWF0ZWQgYXMga2V5d29yZCBiYXNlZCBvbiBpbmRlbnQNCiAgICAgICAg cm9vdCA9IFJ1YnlWTTo6QWJzdHJhY3RTeW50YXhUcmVlLnBhcnNlKDw8flJVQlksIGVycm9yX3Rv bGVyYW50OiB0cnVlKQ0KICAgICAgICBtb2R1bGUgWg0KICAgICAgICAgIGNsYXNzIEZvbw0KICAg ICAgICAgICAgZm9vLg0KICAgICAgICAgIGVuZA0KDQogICAgICAgICAgZGVmIGJhcg0KICAgICAg ICAgIGVuZA0KICAgICAgICBlbmQNCiAgICAgICAgUlVCWQ0KICAgICAgICBwIHJvb3QuY2hpbGRy ZW5bLTFdLmNoaWxkcmVuWy0xXS5jaGlsZHJlblstMV0uY2hpbGRyZW5bLTIuLi0xXQ0KICAgICAg ICAjID0+IFsjPFJ1YnlWTTo6QWJzdHJhY3RTeW50YXhUcmVlOjpOb2RlOkNMQVNTQDI6Mi00OjU+ LA0KIzxSdWJ5Vk06OkFic3RyYWN0U3ludGF4VHJlZTo6Tm9kZTpERUZOQDY6Mi03OjU+XQ0KICAg ICAgICBgYGANCg0KICAgICogQWRkIGBrZWVwX3Rva2Vuc2Agb3B0aW9uIGZvciBgcGFyc2VgLCBg cGFyc2VfZmlsZWAgYW5kIGBvZmAuDQpbW0ZlYXR1cmUgIzE5MDcwXV0NCg0KICAgICAgICBgYGBy dWJ5DQogICAgICAgIHJvb3QgPSBSdWJ5Vk06OkFic3RyYWN0U3ludGF4VHJlZS5wYXJzZSgieCA9 IDEgKyAyIiwga2VlcF90b2tlbnM6IHRydWUpDQogICAgICAgIHJvb3QudG9rZW5zICMgPT4gW1sw LCA6dElERU5USUZJRVIsICJ4IiwgWzEsIDAsIDEsIDFdXSwgWzEsDQo6dFNQLCAiICIsIFsxLCAx LCAxLCAyXV0sIC4uLl0NCiAgICAgICAgcm9vdC50b2tlbnMubWFwe18xWzJdfS5qb2luICMgPT4g InggPSAxICsgMiINCiAgICAgICAgYGBgDQoNCiogU2V0DQogICAgKiBTZXQgaXMgbm93IGF2YWls YWJsZSBhcyBhIGJ1aWx0aW4gY2xhc3Mgd2l0aG91dCB0aGUgbmVlZCBmb3INCmByZXF1aXJlICJz ZXQiYC4gW1tGZWF0dXJlICMxNjk4OV1dDQogICAgICBJdCBpcyBjdXJyZW50bHkgYXV0b2xvYWRl ZCB2aWEgdGhlIGBTZXRgIGNvbnN0YW50IG9yIGEgY2FsbCB0bw0KYEVudW1lcmFibGUjdG9fc2V0 YC4NCg0KKiBTdHJpbmcNCiAgICAqIGBTdHJpbmcjYnl0ZWluZGV4YCBhbmQgYFN0cmluZyNieXRl cmluZGV4YCBoYXZlIGJlZW4gYWRkZWQuDQpbW0ZlYXR1cmUgIzEzMTEwXV0NCiAgICAqIFVwZGF0 ZSBVbmljb2RlIHRvIFZlcnNpb24gMTUuMC4wIGFuZCBFbW9qaSBWZXJzaW9uIDE1LjAuDQpbW0Zl YXR1cmUgIzE4NjM5XV0NCiAgICAgIChhbHNvIGFwcGxpZXMgdG8gUmVnZXhwKQ0KICAgICogYFN0 cmluZyNieXRlc3BsaWNlYCBoYXMgYmVlbiBhZGRlZC4gIFtbRmVhdHVyZSAjMTg1OThdXQ0KDQoq IFN0cnVjdA0KICAgICogQSBTdHJ1Y3QgY2xhc3MgY2FuIGFsc28gYmUgaW5pdGlhbGl6ZWQgd2l0 aCBrZXl3b3JkIGFyZ3VtZW50cw0KICAgICAgd2l0aG91dCBga2V5d29yZF9pbml0OiB0cnVlYCBv biBgU3RydWN0Lm5ld2AgW1tGZWF0dXJlICMxNjgwNl1dDQoNCiAgICAgICAgYGBgcnVieQ0KICAg ICAgICBQb3N0ID0gU3RydWN0Lm5ldyg6aWQsIDpuYW1lKQ0KICAgICAgICBQb3N0Lm5ldygxLCAi aGVsbG8iKSAjPT4gIzxzdHJ1Y3QgUG9zdCBpZD0xLCBuYW1lPSJoZWxsbyI+DQogICAgICAgICMg RnJvbSBSdWJ5IDMuMiwgdGhlIGZvbGxvd2luZyBjb2RlIGFsc28gd29ya3Mgd2l0aG91dA0Ka2V5 d29yZF9pbml0OiB0cnVlLg0KICAgICAgICBQb3N0Lm5ldyhpZDogMSwgbmFtZTogImhlbGxvIikg Iz0+ICM8c3RydWN0IFBvc3QgaWQ9MSwgbmFtZT0iaGVsbG8iPg0KICAgICAgICBgYGANCg0KIyMg Q29tcGF0aWJpbGl0eSBpc3N1ZXMNCg0KTm90ZTogRXhjbHVkaW5nIGZlYXR1cmUgYnVnIGZpeGVz Lg0KDQojIyMgUmVtb3ZlZCBjb25zdGFudHMNCg0KVGhlIGZvbGxvd2luZyBkZXByZWNhdGVkIGNv bnN0YW50cyBhcmUgcmVtb3ZlZC4NCg0KKiBgRml4bnVtYCBhbmQgYEJpZ251bWAgW1tGZWF0dXJl ICMxMjAwNV1dDQoqIGBSYW5kb206OkRFRkFVTFRgIFtbRmVhdHVyZSAjMTczNTFdXQ0KKiBgU3Ry dWN0OjpHcm91cGANCiogYFN0cnVjdDo6UGFzc3dkYA0KDQojIyMgUmVtb3ZlZCBtZXRob2RzDQoN ClRoZSBmb2xsb3dpbmcgZGVwcmVjYXRlZCBtZXRob2RzIGFyZSByZW1vdmVkLg0KDQoqIGBEaXIu ZXhpc3RzP2AgW1tGZWF0dXJlICMxNzM5MV1dDQoqIGBGaWxlLmV4aXN0cz9gIFtbRmVhdHVyZSAj MTczOTFdXQ0KKiBgS2VybmVsIz1+YCBbW0ZlYXR1cmUgIzE1MjMxXV0NCiogYEtlcm5lbCN0YWlu dGAsIGBLZXJuZWwjdW50YWludGAsIGBLZXJuZWwjdGFpbnRlZD9gDQogIFtbRmVhdHVyZSAjMTYx MzFdXQ0KKiBgS2VybmVsI3RydXN0YCwgYEtlcm5lbCN1bnRydXN0YCwgYEtlcm5lbCN1bnRydXN0 ZWQ/YA0KICBbW0ZlYXR1cmUgIzE2MTMxXV0NCg0KIyMgU3RkbGliIGNvbXBhdGliaWxpdHkgaXNz dWVzDQoNCiMjIyBObyBsb25nZXIgYnVuZGxlIDNyZCBwYXJ0eSBzb3VyY2VzDQoNCiogV2Ugbm8g bG9uZ2VyIGJ1bmRsZSAzcmQgcGFydHkgc291cmNlcyBsaWtlIGBsaWJ5YW1sYCwgYGxpYmZmaWAu DQoNCiAgICAqIGxpYnlhbWwgc291cmNlIGhhcyBiZWVuIHJlbW92ZWQgZnJvbSBwc3ljaC4gWW91 IG1heSBuZWVkIHRvDQppbnN0YWxsIGBsaWJ5YW1sLWRldmAgd2l0aCBVYnVudHUvRGViaWFuIHBs YXRmb3JtLiBUaGUgcGFja2FnZSBuYW1lIGlzDQpkaWZmZXJlbnQgZm9yIGVhY2ggcGxhdGZvcm0u DQoNCiAgICAqIEJ1bmRsZWQgbGliZmZpIHNvdXJjZSBpcyBhbHNvIHJlbW92ZWQgZnJvbSBgZmlk ZGxlYA0KDQoqIFBzeWNoIGFuZCBmaWRkbGUgc3VwcG9ydGVkIHN0YXRpYyBidWlsZHMgd2l0aCBz cGVjaWZpYyB2ZXJzaW9ucyBvZg0KbGlieWFtbCBhbmQgbGliZmZpIHNvdXJjZXMuIFlvdSBjYW4g YnVpbGQgcHN5Y2ggd2l0aCBsaWJ5YW1sLTAuMi41DQpsaWtlIHRoaXM6DQoNCiAgICBgYGBiYXNo DQogICAgJCAuL2NvbmZpZ3VyZSAtLXdpdGgtbGlieWFtbC1zb3VyY2UtZGlyPS9wYXRoL3RvL2xp YnlhbWwtMC4yLjUNCiAgICBgYGANCg0KICAgIEFuZCB5b3UgY2FuIGJ1aWxkIGZpZGRsZSB3aXRo IGxpYmZmaS0zLjQuNCBsaWtlIHRoaXM6DQoNCiAgICBgYGBiYXNoDQogICAgJCAuL2NvbmZpZ3Vy ZSAtLXdpdGgtbGliZmZpLXNvdXJjZS1kaXI9L3BhdGgvdG8vbGliZmZpLTMuNC40DQogICAgYGBg DQoNCiAgW1tGZWF0dXJlICMxODU3MV1dDQoNCiMjIEMgQVBJIHVwZGF0ZXMNCg0KIyMjIFVwZGF0 ZWQgQyBBUElzDQoNClRoZSBmb2xsb3dpbmcgQVBJcyBhcmUgdXBkYXRlZC4NCg0KKiBQUk5HIHVw ZGF0ZQ0KICAqIGByYl9yYW5kb21faW50ZXJmYWNlX3RgIHVwZGF0ZWQgYW5kIHZlcnNpb25lZC4N CiAgICBFeHRlbnNpb24gbGlicmFyaWVzIHdoaWNoIHVzZSB0aGlzIGludGVyZmFjZSBhbmQgYnVp bHQgZm9yIG9sZGVyIHZlcnNpb25zLg0KICAgIEFsc28gYGluaXRfaW50MzJgIGZ1bmN0aW9uIG5l ZWRzIHRvIGJlIGRlZmluZWQuDQoNCiMjIyBSZW1vdmVkIEMgQVBJcw0KDQpUaGUgZm9sbG93aW5n IGRlcHJlY2F0ZWQgQVBJcyBhcmUgcmVtb3ZlZC4NCg0KKiBgcmJfY0RhdGFgIHZhcmlhYmxlLg0K KiAidGFpbnRlZG5lc3MiIGFuZCAidHJ1c3RlZG5lc3MiIGZ1bmN0aW9ucy4gW1tGZWF0dXJlICMx NjEzMV1dDQoNCiMjIFN0YW5kYXJkIGxpYnJhcnkgdXBkYXRlcw0KDQoqIEJ1bmRsZXINCg0KICAg ICogQWRkIC0tZXh0PXJ1c3Qgc3VwcG9ydCB0byBidW5kbGUgZ2VtIGZvciBjcmVhdGluZyBzaW1w bGUgZ2Vtcw0Kd2l0aCBSdXN0IGV4dGVuc2lvbnMuDQogICAgICBbW0dILXJ1YnlnZW1zLTYxNDld XQ0KICAgICogTWFrZSBjbG9uaW5nIGdpdCByZXBvcyBmYXN0ZXIgW1tHSC1ydWJ5Z2Vtcy00NDc1 XV0NCg0KKiBSdWJ5R2Vtcw0KDQogICAgKiBBZGQgbXN3aW4gc3VwcG9ydCBmb3IgY2FyZ28gYnVp bGRlci4gW1tHSC1ydWJ5Z2Vtcy02MTY3XV0NCg0KKiBFUkINCg0KICAgICogYEVSQjo6VXRpbC5o dG1sX2VzY2FwZWAgaXMgbWFkZSBmYXN0ZXIgdGhhbiBgQ0dJLmVzY2FwZUhUTUxgLg0KICAgICAg ICAqIEl0IG5vIGxvbmdlciBhbGxvY2F0ZXMgYSBTdHJpbmcgb2JqZWN0IHdoZW4gbm8gY2hhcmFj dGVyDQpuZWVkcyB0byBiZSBlc2NhcGVkLg0KICAgICAgICAqIEl0IHNraXBzIGNhbGxpbmcgYCN0 b19zYCBtZXRob2Qgd2hlbiBhbiBhcmd1bWVudCBpcyBhbHJlYWR5IGEgU3RyaW5nLg0KICAgICAg ICAqIGBFUkI6OkVzY2FwZS5odG1sX2VzY2FwZWAgaXMgYWRkZWQgYXMgYW4gYWxpYXMgdG8NCmBF UkI6OlV0aWwuaHRtbF9lc2NhcGVgLA0KICAgICAgICAgIHdoaWNoIGhhcyBub3QgYmVlbiBtb25r ZXktcGF0Y2hlZCBieSBSYWlscy4NCg0KKiBJUkINCg0KICAgICogZGVidWcuZ2VtIGludGVncmF0 aW9uIGNvbW1hbmRzIGhhdmUgYmVlbiBhZGRlZDogYGRlYnVnYCwgYGJyZWFrYCwgYGNhdGNoYCwN CiAgICAgIGBuZXh0YCwgYGRlbGV0ZWAsIGBzdGVwYCwgYGNvbnRpbnVlYCwgYGZpbmlzaGAsIGBi YWNrdHJhY2VgLCBgaW5mb2ANCiAgICAgICAgKiBUaGV5IHdvcmsgZXZlbiBpZiB5b3UgZG9uJ3Qg aGF2ZSBgZ2VtICJkZWJ1ZyJgIGluIHlvdXIgR2VtZmlsZS4NCiAgICAgICAgKiBTZWUgYWxzbzog W1doYXQncyBuZXcgaW4gUnVieSAzLjIncw0KSVJCP10oaHR0cHM6Ly9zdDAwMTIuZGV2L3doYXRz LW5ldy1pbi1ydWJ5LTMtMi1pcmIpDQogICAgKiBNb3JlIFByeS1saWtlIGNvbW1hbmRzIGFuZCBm ZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQuDQogICAgICAgICogYGVkaXRgIGFuZCBgc2hvd19jbWRz YCAobGlrZSBQcnkncyBgaGVscGApIGFyZSBhZGRlZC4NCiAgICAgICAgKiBgbHNgIHRha2VzIGAt Z2Agb3IgYC1HYCBvcHRpb24gdG8gZmlsdGVyIG91dCBvdXRwdXRzLg0KICAgICAgICAqIGBzaG93 X3NvdXJjZWAgaXMgYWxpYXNlZCBmcm9tIGAkYCBhbmQgYWNjZXB0cyB1bnF1b3RlZCBpbnB1dHMu DQogICAgICAgICogYHdoZXJlYW1pYCBpcyBhbGlhc2VkIGZyb20gYEBgLg0KDQoqICAgVGhlIGZv bGxvd2luZyBkZWZhdWx0IGdlbXMgYXJlIHVwZGF0ZWQuDQoNCiAgICAqIFJ1YnlHZW1zIDMuNC4x DQogICAgKiBhYmJyZXYgMC4xLjENCiAgICAqIGJlbmNobWFyayAwLjIuMQ0KICAgICogYmlnZGVj aW1hbCAzLjEuMw0KICAgICogYnVuZGxlciAyLjQuMQ0KICAgICogY2dpIDAuMy42DQogICAgKiBj c3YgMy4yLjYNCiAgICAqIGRhdGUgMy4zLjMNCiAgICAqIGRlbGVnYXRlIDAuMy4wDQogICAgKiBk aWRfeW91X21lYW4gMS42LjMNCiAgICAqIGRpZ2VzdCAzLjEuMQ0KICAgICogZHJiIDIuMS4xDQog ICAgKiBlbmdsaXNoIDAuNy4yDQogICAgKiBlcmIgNC4wLjINCiAgICAqIGVycm9yX2hpZ2hsaWdo dCAwLjUuMQ0KICAgICogZXRjIDEuNC4yDQogICAgKiBmY250bCAxLjAuMg0KICAgICogZmlkZGxl IDEuMS4xDQogICAgKiBmaWxldXRpbHMgMS43LjANCiAgICAqIGZvcndhcmRhYmxlIDEuMy4zDQog ICAgKiBnZXRvcHRsb25nIDAuMi4wDQogICAgKiBpby1jb25zb2xlIDAuNi4wDQogICAgKiBpby1u b25ibG9jayAwLjIuMA0KICAgICogaW8td2FpdCAwLjMuMA0KICAgICogaXBhZGRyIDEuMi41DQog ICAgKiBpcmIgMS42LjINCiAgICAqIGpzb24gMi42LjMNCiAgICAqIGxvZ2dlciAxLjUuMw0KICAg ICogbXV0ZXhfbSAwLjEuMg0KICAgICogbmV0LWh0dHAgMC4zLjINCiAgICAqIG5ldC1wcm90b2Nv bCAwLjIuMQ0KICAgICogbmtmIDAuMS4yDQogICAgKiBvcGVuLXVyaSAwLjMuMA0KICAgICogb3Bl bjMgMC4xLjINCiAgICAqIG9wZW5zc2wgMy4xLjANCiAgICAqIG9wdHBhcnNlIDAuMy4xDQogICAg KiBvc3RydWN0IDAuNS41DQogICAgKiBwYXRobmFtZSAwLjIuMQ0KICAgICogcHAgMC40LjANCiAg ICAqIHBzdG9yZSAwLjEuMg0KICAgICogcHN5Y2ggNS4wLjENCiAgICAqIHJhY2MgMS42LjINCiAg ICAqIHJkb2MgNi41LjANCiAgICAqIHJlYWRsaW5lLWV4dCAwLjEuNQ0KICAgICogcmVsaW5lIDAu My4yDQogICAgKiByZXNvbHYgMC4yLjINCiAgICAqIHJlc29sdi1yZXBsYWNlIDAuMS4xDQogICAg KiBzZWN1cmVyYW5kb20gMC4yLjINCiAgICAqIHNldCAxLjAuMw0KICAgICogc3RyaW5naW8gMy4w LjQNCiAgICAqIHN0cnNjYW4gMy4wLjUNCiAgICAqIHN5bnRheF9zdWdnZXN0IDEuMC4yDQogICAg KiBzeXNsb2cgMC4xLjENCiAgICAqIHRlbXBmaWxlIDAuMS4zDQogICAgKiB0aW1lIDAuMi4xDQog ICAgKiB0aW1lb3V0IDAuMy4xDQogICAgKiB0bXBkaXIgMC4xLjMNCiAgICAqIHRzb3J0IDAuMS4x DQogICAgKiB1biAwLjIuMQ0KICAgICogdXJpIDAuMTIuMA0KICAgICogd2Vha3JlZiAwLjEuMg0K ICAgICogd2luMzJvbGUgMS44LjkNCiAgICAqIHlhbWwgMC4yLjENCiAgICAqIHpsaWIgMy4wLjAN Cg0KKiAgIFRoZSBmb2xsb3dpbmcgYnVuZGxlZCBnZW1zIGFyZSB1cGRhdGVkLg0KDQogICAgKiBt aW5pdGVzdCA1LjE2LjMNCiAgICAqIHBvd2VyX2Fzc2VydCAyLjAuMw0KICAgICogdGVzdC11bml0 IDMuNS43DQogICAgKiBuZXQtZnRwIDAuMi4wDQogICAgKiBuZXQtaW1hcCAwLjMuMw0KICAgICog bmV0LXBvcCAwLjEuMg0KICAgICogbmV0LXNtdHAgMC4zLjMNCiAgICAqIHJicyAyLjguMg0KICAg ICogdHlwZXByb2YgMC4yMS4zDQogICAgKiBkZWJ1ZyAxLjcuMQ0KDQpTZWUgR2l0SHViIHJlbGVh c2VzIGxpa2UgW0dpdEh1YiBSZWxlYXNlcyBvZg0KbG9nZ2VyXShodHRwczovL2dpdGh1Yi5jb20v cnVieS9sb2dnZXIvcmVsZWFzZXMpIG9yIGNoYW5nZWxvZyBmb3INCmRldGFpbHMgb2YgdGhlIGRl ZmF1bHQgZ2VtcyBvciBidW5kbGVkIGdlbXMuDQoNClNlZSBbTkVXU10oaHR0cHM6Ly9naXRodWIu Y29tL3J1YnkvcnVieS9ibG9iL3YzXzJfMC9ORVdTLm1kKQ0Kb3IgW2NvbW1pdCBsb2dzXShodHRw czovL2dpdGh1Yi5jb20vcnVieS9ydWJ5L2NvbXBhcmUvdjNfMV8wLi4udjNfMl8wKQ0KZm9yIG1v cmUgZGV0YWlscy4NCg0KV2l0aCB0aG9zZSBjaGFuZ2VzLCBbMzA0OCBmaWxlcyBjaGFuZ2VkLCAy MTgyNTMgaW5zZXJ0aW9ucygrKSwgMTMxMDY3DQpkZWxldGlvbnMoLSldKGh0dHBzOi8vZ2l0aHVi LmNvbS9ydWJ5L3J1YnkvY29tcGFyZS92M18xXzAuLi52M18yXzAjZmlsZV9idWNrZXQpDQpzaW5j ZSBSdWJ5IDMuMS4wIQ0KDQpNZXJyeSBDaHJpc3RtYXMsIEhhcHB5IEhvbGlkYXlzLCBhbmQgZW5q b3kgcHJvZ3JhbW1pbmcgd2l0aCBSdWJ5IDMuMiENCg0KIyMgRG93bmxvYWQNCg0KKiA8aHR0cHM6 Ly9jYWNoZS5ydWJ5LWxhbmcub3JnL3B1Yi9ydWJ5LzMuMi9ydWJ5LTMuMi4wLnRhci5nej4NCg0K ICAgICAgU0laRTogMjA0NDA3MTUNCiAgICAgIFNIQTE6IGZiNGFiMmNlYmE4YmY2YTViOWJjN2Jm N2NhYzk0NWNjOTRmOTRjMmINCiAgICAgIFNIQTI1NjogZGFhYTc4ZTEzNjBiMjc4M2Y5OGRlZWNl YjY3N2FkOTAwZjNhMzZjMGZmYTZlMmI2YjE5MDkwYmU3N2FiYzI3Mg0KICAgICAgU0hBNTEyOiA5 NDIwMzA1MWQyMDQ3NWI5NWE2NjY2MDAxNjcyMWEwNDU3ZDdlYTU3NjU2YTlmMTZjZGQ0MjY0ZDhh YTZjNGNkOGVhMmZhYjY1OTA4MjYxMWJmYmQ3YjAwZWJiY2YwMzkxZTg4M2UyZWJmMzg0ZTRmYWI5 MTg2OWUwYTg3N2QzNQ0KDQoqIDxodHRwczovL2NhY2hlLnJ1YnktbGFuZy5vcmcvcHViL3J1Ynkv My4yL3J1YnktMy4yLjAudGFyLnh6Pg0KDQogICAgICBTSVpFOiAxNTA1ODM2NA0KICAgICAgU0hB MTogYmNkYWUwNzE4M2Q2NmZkOTAyY2I3YmY5OTU1NDVhNDcyZDJmZWZlYQ0KICAgICAgU0hBMjU2 OiBkMmY0NTc3MzA2ZTZkZDkzMjI1OTY5MzIzMzE0MWU1YzNlYzEzNjIyYzk1Yjc1OTk2NTQxYjhk NWI2OGIyOGI0DQogICAgICBTSEE1MTI6IDczM2VjYzY3MDk0NzBlZTE2OTE2ZGVlZWNlOWFmMWM3 NjIyMGFlOTVkMTdiMjY4MTExNmFmZjdmMzgxZDk5YmMzMTI0YjFiMTFiMWMyMzM2YjJiMjllNDY4 ZTkxYjkwZjE1OGQ1YWU1ZmNhODEwYzZjZjMyYTBiNjIzNGFlMDhlDQoNCiogPGh0dHBzOi8vY2Fj aGUucnVieS1sYW5nLm9yZy9wdWIvcnVieS8zLjIvcnVieS0zLjIuMC56aXA+DQoNCiAgICAgIFNJ WkU6IDI0NTgzMjcxDQogICAgICBTSEExOiA1ODFlYzdiOTI4OWMyYTg1YWJmNGY0MWM5Mzk5M2Vj YWE1Y2Y0M2E1DQogICAgICBTSEEyNTY6IGNjYTlkZGJjOTU4NDMxZmY3N2Y2MTk0OGNiNjdhZmE1 NjlmMDFmOTljOTM4OWQyYmJlZGZhOTI5ODZjOWVmMDkNCiAgICAgIFNIQTUxMjogYjdkMjc1Mzgy NWNjMDY2N2U4YmIzOTFmYzdlYzU5YTUzYzNkYjVmYTMxNGUzOGVlZTc0YjY1MTE4OTBiNTg1YWM3 NTE1YmFhMmRkYWMwOWUyYzZiNmM0MmI5MjIxYzgyZTA0MGFmNWIzOWM3M2U5ODBmYmQzYjFiYzYy MmM5OWQNCg0KIyMgV2hhdCBpcyBSdWJ5DQoNClJ1Ynkgd2FzIGZpcnN0IGRldmVsb3BlZCBieSBN YXR6IChZdWtpaGlybyBNYXRzdW1vdG8pIGluIDE5OTMsDQphbmQgaXMgbm93IGRldmVsb3BlZCBh cyBPcGVuIFNvdXJjZS4gSXQgcnVucyBvbiBtdWx0aXBsZSBwbGF0Zm9ybXMNCmFuZCBpcyB1c2Vk IGFsbCBvdmVyIHRoZSB3b3JsZCBlc3BlY2lhbGx5IGZvciB3ZWIgZGV2ZWxvcG1lbnQuDQoNCltG ZWF0dXJlICMxMjAwNV06ICAgICBodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTIw MDUNCltGZWF0dXJlICMxMjA4NF06ICAgICBodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1 ZXMvMTIwODQNCltGZWF0dXJlICMxMjY1NV06ICAgICBodHRwczovL2J1Z3MucnVieS1sYW5nLm9y Zy9pc3N1ZXMvMTI2NTUNCltGZWF0dXJlICMxMjczN106ICAgICBodHRwczovL2J1Z3MucnVieS1s YW5nLm9yZy9pc3N1ZXMvMTI3MzcNCltGZWF0dXJlICMxMzExMF06ICAgICBodHRwczovL2J1Z3Mu cnVieS1sYW5nLm9yZy9pc3N1ZXMvMTMxMTANCltGZWF0dXJlICMxNDMzMl06ICAgICBodHRwczov L2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTQzMzINCltGZWF0dXJlICMxNTIzMV06ICAgICBo dHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTUyMzENCltGZWF0dXJlICMxNTM1N106 ICAgICBodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTUzNTcNCltCdWcgIzE1OTI4 XTogICAgICAgICBodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTU5MjgNCltGZWF0 dXJlICMxNjEyMl06ICAgICBodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTYxMjIN CltGZWF0dXJlICMxNjEzMV06ICAgICBodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMv MTYxMzENCltCdWcgIzE2NDY2XTogICAgICAgICBodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9p c3N1ZXMvMTY0NjYNCltGZWF0dXJlICMxNjY2M106ICAgICBodHRwczovL2J1Z3MucnVieS1sYW5n Lm9yZy9pc3N1ZXMvMTY2NjMNCltGZWF0dXJlICMxNjgwNl06ICAgICBodHRwczovL2J1Z3MucnVi eS1sYW5nLm9yZy9pc3N1ZXMvMTY4MDYNCltCdWcgIzE2ODg5XTogICAgICAgICBodHRwczovL2J1 Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTY4ODkNCltCdWcgIzE2OTA4XTogICAgICAgICBodHRw czovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTY5MDgNCltGZWF0dXJlICMxNjk4OV06ICAg ICBodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTY5ODkNCltGZWF0dXJlICMxNzM1 MV06ICAgICBodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTczNTENCltGZWF0dXJl ICMxNzM5MV06ICAgICBodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTczOTENCltC dWcgIzE3NTQ1XTogICAgICAgICBodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTc1 NDUNCltCdWcgIzE3NzY3XTogICAgICAgICBodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1 ZXMvMTc3NjcNCltGZWF0dXJlICMxNzgzN106ICAgICBodHRwczovL2J1Z3MucnVieS1sYW5nLm9y Zy9pc3N1ZXMvMTc4MzcNCltGZWF0dXJlICMxNzg4MV06ICAgICBodHRwczovL2J1Z3MucnVieS1s YW5nLm9yZy9pc3N1ZXMvMTc4ODENCltGZWF0dXJlICMxODAzM106ICAgICBodHRwczovL2J1Z3Mu cnVieS1sYW5nLm9yZy9pc3N1ZXMvMTgwMzMNCltGZWF0dXJlICMxODE1OV06ICAgICBodHRwczov L2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTgxNTkNCltGZWF0dXJlICMxODIzOV06ICAgICBo dHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTgyMzkjbm90ZS0xNw0KW0ZlYXR1cmUg IzE4MzUxXTogICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xODM1MQ0KW0Zl YXR1cmUgIzE4MzY3XTogICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xODM2 Nw0KW0J1ZyAjMTg0MzVdOiAgICAgICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vl cy8xODQzNQ0KW0ZlYXR1cmUgIzE4NDYyXTogICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3Jn L2lzc3Vlcy8xODQ2Mg0KW0ZlYXR1cmUgIzE4NDgxXTogICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxh bmcub3JnL2lzc3Vlcy8xODQ4MQ0KW0J1ZyAjMTg0ODddOiAgICAgICAgIGh0dHBzOi8vYnVncy5y dWJ5LWxhbmcub3JnL2lzc3Vlcy8xODQ4Nw0KW0ZlYXR1cmUgIzE4NTY0XTogICAgIGh0dHBzOi8v YnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xODU2NA0KW0ZlYXR1cmUgIzE4NTcxXTogICAgIGh0 dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xODU3MQ0KW0ZlYXR1cmUgIzE4NTg1XTog ICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xODU4NQ0KW0ZlYXR1cmUgIzE4 NTg5XTogICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xODU4OQ0KW0ZlYXR1 cmUgIzE4NTk1XTogICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xODU5NQ0K W0ZlYXR1cmUgIzE4NTk4XTogICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8x ODU5OA0KW0J1ZyAjMTg2MjVdOiAgICAgICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lz c3Vlcy8xODYyNQ0KW0ZlYXR1cmUgIzE4NjMwXTogICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcu b3JnL2lzc3Vlcy8xODYzMA0KW0J1ZyAjMTg2MzNdOiAgICAgICAgIGh0dHBzOi8vYnVncy5ydWJ5 LWxhbmcub3JnL2lzc3Vlcy8xODYzMw0KW0ZlYXR1cmUgIzE4NjM5XTogICAgIGh0dHBzOi8vYnVn cy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xODYzOQ0KW0ZlYXR1cmUgIzE4Njg1XTogICAgIGh0dHBz Oi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xODY4NQ0KW0J1ZyAjMTg3MjldOiAgICAgICAg IGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xODcyOQ0KW0J1ZyAjMTg3NTFdOiAg ICAgICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xODc1MQ0KW0ZlYXR1cmUg IzE4Nzc0XTogICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xODc3NA0KW0Zl YXR1cmUgIzE4Nzc2XTogICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xODc3 Ng0KW0J1ZyAjMTg3ODJdOiAgICAgICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vl cy8xODc4Mg0KW0ZlYXR1cmUgIzE4Nzg4XTogICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3Jn L2lzc3Vlcy8xODc4OA0KW0ZlYXR1cmUgIzE4Nzk4XTogICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxh bmcub3JnL2lzc3Vlcy8xODc5OA0KW0ZlYXR1cmUgIzE4ODA5XTogICAgIGh0dHBzOi8vYnVncy5y dWJ5LWxhbmcub3JnL2lzc3Vlcy8xODgwOQ0KW0ZlYXR1cmUgIzE4ODIxXTogICAgIGh0dHBzOi8v YnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xODgyMQ0KW0ZlYXR1cmUgIzE4ODIyXTogICAgIGh0 dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xODgyMg0KW0ZlYXR1cmUgIzE4ODI0XTog ICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xODgyNA0KW0ZlYXR1cmUgIzE4 ODMyXTogICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xODgzMg0KW0ZlYXR1 cmUgIzE4ODc1XTogICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xODg3NQ0K W0ZlYXR1cmUgIzE4OTI1XTogICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8x ODkyNQ0KW0ZlYXR1cmUgIzE4OTQ0XTogICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lz c3Vlcy8xODk0NA0KW0ZlYXR1cmUgIzE4OTQ5XTogICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcu b3JnL2lzc3Vlcy8xODk0OQ0KW0ZlYXR1cmUgIzE4OTY4XTogICAgIGh0dHBzOi8vYnVncy5ydWJ5 LWxhbmcub3JnL2lzc3Vlcy8xODk2OA0KW0ZlYXR1cmUgIzE5MDA4XTogICAgIGh0dHBzOi8vYnVn cy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xOTAwOA0KW0ZlYXR1cmUgIzE5MDEzXTogICAgIGh0dHBz Oi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xOTAxMw0KW0ZlYXR1cmUgIzE5MDI2XTogICAg IGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xOTAyNg0KW0ZlYXR1cmUgIzE5MDM2 XTogICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xOTAzNg0KW0ZlYXR1cmUg IzE5MDYwXTogICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xOTA2MA0KW0Zl YXR1cmUgIzE5MDcwXTogICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xOTA3 MA0KW0ZlYXR1cmUgIzE5MDcxXTogICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vl cy8xOTA3MQ0KW0ZlYXR1cmUgIzE5MDc4XTogICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3Jn L2lzc3Vlcy8xOTA3OA0KW0J1ZyAjMTkwODddOiAgICAgICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxh bmcub3JnL2lzc3Vlcy8xOTA4Nw0KW0J1ZyAjMTkxMDBdOiAgICAgICAgIGh0dHBzOi8vYnVncy5y dWJ5LWxhbmcub3JnL2lzc3Vlcy8xOTEwMA0KW0ZlYXR1cmUgIzE5MTA0XTogICAgIGh0dHBzOi8v YnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xOTEwNA0KW0ZlYXR1cmUgIzE5MTM1XTogICAgIGh0 dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xOTEzNQ0KW0ZlYXR1cmUgIzE5MTM4XTog ICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xOTEzOA0KW0ZlYXR1cmUgIzE5 MTk0XTogICAgIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xOTE5NA0KW01vbGlu aWxsb106ICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9Db2NvYVBvZHMvTW9saW5pbGxvDQpb UHViR3J1Yl06ICAgICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL2poYXd0aG9ybi9wdWJfZ3J1 Yg0KW0dILW5ldC1wcm90b2NvbC0xNF06IGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L25ldC1wcm90 b2NvbC9wdWxsLzE0DQpbR0gtcGF0aG5hbWUtMjBdOiAgICAgaHR0cHM6Ly9naXRodWIuY29tL3J1 YnkvcGF0aG5hbWUvcHVsbC8yMA0KW0dILTY3OTFdOiAgICAgICAgICAgIGh0dHBzOi8vZ2l0aHVi LmNvbS9ydWJ5L3J1YnkvcHVsbC82NzkxDQpbR0gtNjg2OF06ICAgICAgICAgICAgaHR0cHM6Ly9n aXRodWIuY29tL3J1YnkvcnVieS9wdWxsLzY4NjgNCltHSC1ydWJ5Z2Vtcy00NDc1XTogICBodHRw czovL2dpdGh1Yi5jb20vcnVieWdlbXMvcnVieWdlbXMvcHVsbC80NDc1DQpbR0gtcnVieWdlbXMt NjE0OV06ICAgaHR0cHM6Ly9naXRodWIuY29tL3J1YnlnZW1zL3J1YnlnZW1zL3B1bGwvNjE0OQ0K W0dILXJ1YnlnZW1zLTYxNjddOiAgIGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5Z2Vtcy9ydWJ5Z2Vt cy9wdWxsLzYxNjcNCltzZWMtMTU2NjE1XTogICAgICAgICBodHRwczovL2hhY2tlcm9uZS5jb20v cmVwb3J0cy8xNTY2MTUNCltDVkUtMjAyMS0zMzYyMV06DQpodHRwczovL3d3dy5ydWJ5LWxhbmcu b3JnL2VuL25ld3MvMjAyMi8xMS8yMi9odHRwLXJlc3BvbnNlLXNwbGl0dGluZy1pbi1jZ2ktY3Zl LTIwMjEtMzM2MjEvDQpbd2FzbS9SRUFETUUubWRdOiAgICAgaHR0cHM6Ly9naXRodWIuY29tL3J1 YnkvcnVieS9ibG9iL21hc3Rlci93YXNtL1JFQURNRS5tZA0KW3J1Ynkud2FzbV06ICAgICAgICAg IGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L3J1Ynkud2FzbQ0KIF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KIHJ1YnktY29yZSBtYWlsaW5nIGxpc3QgLS0gcnVi eS1jb3JlQG1sLnJ1YnktbGFuZy5vcmcKIFRvIHVuc3Vic2NyaWJlIHNlbmQgYW4gZW1haWwgdG8g cnVieS1jb3JlLWxlYXZlQG1sLnJ1YnktbGFuZy5vcmcKIHJ1YnktY29yZSBpbmZvIC0tIGh0dHBz Oi8vbWwucnVieS1sYW5nLm9yZy9tYWlsbWFuMy9wb3N0b3JpdXMvbGlzdHMvcnVieS1jb3JlLm1s LnJ1YnktbGFuZy5vcmcv