IyAtKi0gcnBtIC0qLQolZGVmaW5lIFJQTVZFUlNJT04gQEBSUE1WRVJTSU9OQEAKJWRlZmluZSBWRVJTSU9OICAgIEBAVkVSU0lPTkBAClN1bW1hcnk6IEtlcm5lbCBsb2FkZXIgd2hpY2ggdXNlcyBhIEZBVCwgZXh0Mi8zIG9yIGlzbzk2NjAgZmlsZXN5c3RlbSBvciBhIFBYRSBuZXR3b3JrCk5hbWU6IHN5c2xpbnV4ClZlcnNpb246ICV7UlBNVkVSU0lPTn0KUmVsZWFzZTogMQpMaWNlbnNlOiBHUEwKR3JvdXA6IFN5c3RlbS9Cb290ClNvdXJjZTA6IGZ0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy9ib290L3N5c2xpbnV4LyV7bmFtZX0tJXtWRVJTSU9OfS50YXIuZ3oKRXhjbHVzaXZlQXJjaDogaTM4NiBpNDg2IGk1ODYgaTY4NiBhdGhsb24gcGVudGl1bTQgeDg2XzY0ClBhY2thZ2VyOiBILiBQZXRlciBBbnZpbiA8aHBhQHp5dG9yLmNvbT4KQnVpbGRyb290OiAle190bXBwYXRofS8le25hbWV9LSV7VkVSU0lPTn0tcm9vdApCdWlsZFByZXJlcTogbmFzbSA+PSAwLjk4LjM5LCBwZXJsCkF1dG9yZXE6IDAKJWlmYXJjaCB4ODZfNjQKUmVxdWlyZXM6IG10b29scywgbGliYy5zby42KCkoNjRiaXQpCiVkZWZpbmUgbXlfY2MgZ2NjCiVlbHNlClJlcXVpcmVzOiBtdG9vbHMsIGxpYmMuc28uNgolZGVmaW5lIG15X2NjIGdjYyAtbTMyCiVlbmRpZgoKIyBOT1RFOiBleHRsaW51eCBiZWxvbmdzIGluIC9zYmluLCBub3QgaW4gL3Vzci9zYmluLCBzaW5jZSBpdCBpcyB0eXBpY2FsbHkKIyBhIHN5c3RlbSBib290bG9hZGVyLCBhbmQgbWF5IGJlIG5lY2Vzc2FyeSBmb3Igc3lzdGVtIHJlY292ZXJ5LgolZGVmaW5lIF9zYmluZGlyIC9zYmluCgolcGFja2FnZSBkZXZlbApTdW1tYXJ5OiBEZXZlbG9wbWVudCBlbnZpcm9ubWVudCBmb3IgU1lTTElOVVggYWRkLW9uIG1vZHVsZXMKR3JvdXA6IERldmVsb3BtZW50L0xpYnJhcmllcwpSZXF1aXJlczogc3lzbGludXgKCiVkZXNjcmlwdGlvbgpTWVNMSU5VWCBpcyBhIHN1aXRlIG9mIGJvb3Rsb2FkZXJzLCBjdXJyZW50bHkgc3VwcG9ydGluZyBET1MgRkFUCmZpbGVzeXN0ZW1zLCBMaW51eCBleHQyL2V4dDMgZmlsZXN5c3RlbXMgKEVYVExJTlVYKSwgUFhFIG5ldHdvcmsgYm9vdHMKKFBYRUxJTlVYKSwgb3IgSVNPIDk2NjAgQ0QtUk9NcyAoSVNPTElOVVgpLiAgSXQgYWxzbyBpbmNsdWRlcyBhIHRvb2wsCk1FTURJU0ssIHdoaWNoIGxvYWRzIGxlZ2FjeSBvcGVyYXRpbmcgc3lzdGVtcyBmcm9tIHRoZXNlIG1lZGlhLgoKJWRlc2NyaXB0aW9uIGRldmVsClRoZSBTWVNMSU5VWCBib290IGxvYWRlciBjb250YWlucyBhbiBBUEksIGNhbGxlZCBDT00zMiwgZm9yIHdyaXRpbmcKc29waGlzdGljYXRlZCBhZGQtb24gbW9kdWxlcy4gIFRoaXMgcGFja2FnZSBjb250YWlucyB0aGUgbGlicmFyaWVzCm5lY2Vzc2FyeSB0byBjb21waWxlIHN1Y2ggbW9kdWxlcy4KCiVwYWNrYWdlIGV4dGxpbnV4ClN1bW1hcnk6IFRoZSBFWFRMSU5VWCBib290bG9hZGVyLCBmb3IgYm9vdGluZyB0aGUgbG9jYWwgc3lzdGVtLgpHcm91cDogU3lzdGVtL0Jvb3QKUmVxdWlyZXM6IHN5c2xpbnV4CgolZGVzY3JpcHRpb24gZXh0bGludXgKVGhlIEVYVExJTlVYIGJvb3Rsb2FkZXIsIGZvciBib290aW5nIHRoZSBsb2NhbCBzeXN0ZW0sIGFzIHdlbGwgYXMgYWxsCnRoZSBTWVNMSU5VWC9QWEVMSU5VWCBtb2R1bGVzIGluIC9ib290LgoKJXBhY2thZ2UgdGZ0cGJvb3QKU3VtbWFyeTogU1lTTElOVVggbW9kdWxlcyBpbiAvdGZ0cGJvb3QsIGF2YWlsYWJsZSBmb3IgbmV0d29yayBib290aW5nCkdyb3VwOiBBcHBsaWNhdGlvbnMvSW50ZXJuZXQKUmVxdWlyZXM6IHN5c2xpbnV4CgolZGVzY3JpcHRpb24gdGZ0cGJvb3QKQWxsIHRoZSBTWVNMSU5VWC9QWEVMSU5VWCBtb2R1bGVzIGRpcmVjdGx5IGF2YWlsYWJsZSBmb3IgbmV0d29yawpib290aW5nIGluIHRoZSAvdGZ0cGJvb3QgZGlyZWN0b3J5LgoKJXByZXAKJXNldHVwIC1xIC1uIHN5c2xpbnV4LSV7VkVSU0lPTn0KCiVidWlsZAptYWtlIENDPScle215X2NjfScgY2xlYW4KbWFrZSBDQz0nJXtteV9jY30nIGluc3RhbGxlcgptYWtlIENDPScle215X2NjfScgLUMgc2FtcGxlIHRpZHkKCiVpbnN0YWxsCnJtIC1yZiAle2J1aWxkcm9vdH0KbWFrZSBDQz0nJXtteV9jY30nIGluc3RhbGwtYWxsIFwKCUlOU1RBTExST09UPSV7YnVpbGRyb290fSBCSU5ESVI9JXtfYmluZGlyfSBTQklORElSPSV7X3NiaW5kaXJ9IFwKCUxJQkRJUj0le19saWJkaXJ9IERBVEFESVI9JXtfZGF0YWRpcn0gXAoJTUFORElSPSV7X21hbmRpcn0gSU5DRElSPSV7X2luY2x1ZGVkaXJ9IFwKCVRGVFBCT09UPS90ZnRwYm9vdCBFWFRMSU5VWERJUj0vYm9vdC9leHRsaW51eAptYWtlIENDPScle215X2NjfScgLUMgc2FtcGxlIHRpZHkKbWtkaXIgLXAgJXtidWlsZHJvb3R9L2V0YwooIGNkICV7YnVpbGRyb290fS9ldGMgJiYgbG4gLXMgLi4vYm9vdC9leHRsaW51eC9leHRsaW51eC5jb25mIC4gKQoKJWNsZWFuCnJtIC1yZiAle2J1aWxkcm9vdH0KCiVmaWxlcwolZGVmYXR0cigtLHJvb3Qscm9vdCkKJWRvYyBDT1BZSU5HIE5FV1MgZG9jLyoKJWRvYyBzYW1wbGUKJXtfbWFuZGlyfS9tYW4qLyoKJXtfYmluZGlyfS8qCiV7X2RhdGFkaXJ9L3N5c2xpbnV4LyouY29tCiV7X2RhdGFkaXJ9L3N5c2xpbnV4LyouZXhlCiV7X2RhdGFkaXJ9L3N5c2xpbnV4LyouYzMyCiV7X2RhdGFkaXJ9L3N5c2xpbnV4LyouYmluCiV7X2RhdGFkaXJ9L3N5c2xpbnV4LyouMAole19kYXRhZGlyfS9zeXNsaW51eC9tZW1kaXNrCgolZmlsZXMgZGV2ZWwKJXtfZGF0YWRpcn0vc3lzbGludXgvY29tMzIKCiVmaWxlcyBleHRsaW51eAole19zYmluZGlyfS9leHRsaW51eAovYm9vdC9leHRsaW51eAolY29uZmlnIC9ldGMvZXh0bGludXguY29uZgoKJWZpbGVzIHRmdHBib290Ci90ZnRwYm9vdAoKJXBvc3QgZXh0bGludXgKIyBJZiB3ZSBoYXZlIGEgL2Jvb3QvZXh0bGludXguY29uZiBmaWxlLCBhc3N1bWUgZXh0bGludXggaXMgb3VyIGJvb3Rsb2FkZXIKIyBhbmQgdXBkYXRlIGl0LgppZiBbIC1mIC9ib290L2V4dGxpbnV4L2V4dGxpbnV4LmNvbmYgXTsgdGhlbiBcCglleHRsaW51eCAtLXVwZGF0ZSAvYm9vdC9leHRsaW51eCA7IFwKZWxpZiBbIC1mIC9ib290L2V4dGxpbnV4LmNvbmYgXTsgdGhlbiBcCglta2RpciAtcCAvYm9vdC9leHRsaW51eCAmJiBcCgltdiAvYm9vdC9leHRsaW51eC5jb25mIC9ib290L2V4dGxpbnV4L2V4dGxpbnV4LmNvbmYgJiYgXAoJZXh0bGludXggLS11cGRhdGUgL2Jvb3QvZXh0bGludXggOyBcCmZpCgolcG9zdHVuCgolY2hhbmdlbG9nCiogVGh1IE1heSAyOSAyMDA4IEguIFBldGVyIEFudmluIDxocGFAenl0b3IuY29tPgotIFVzZSBpbnN0YWxsIHRhcmdldHM7IGNsZWFuIHVwIHZhcmlvdXMgcGF0aHMuCgoqIFRodSBKYW4gMTAgMjAwOCBILiBQZXRlciBBbnZpbiA8aHBhQHp5dG9yLmNvbT4KLSBBZGQgbWFuIHBhZ2VzLgoKKiBNb24gTm92IDE5IDIwMDcgQmVybmFyZCBMaSA8YmVybmFyZEB2YW5ocGMub3JnPgotIEFkZGVkIG5ldHBibS1wcm9ncyAocHJvdmlkZXMgcG5ndG9wbm0pIHRvIEJ1aWxkUHJlcmVxICh0aGlzIHNob3VsZCBiZQogIGNoYW5nZWQgdG8gQnVpbGRSZXF1aXJlcyBzaW5jZSBpdCBpcyBkZXByZWNhdGVkLi4uKQoKKiBUaHUgTWFyIDE1IDIwMDcgSC4gUGV0ZXIgQW52aW4gPGhwYUB6eXRvci5jb20+Ci0gTW92ZSBleHRsaW51eCAvYm9vdCBzdHVmZiBpbnRvIC9ib290L2V4dGxpbnV4LgoKKiBUaHUgSmFuIDI1IDIwMDcgSC4gUGV0ZXIgQW52aW4gPGhwYUB6eXRvci5jb20+Ci0gSGFja3MgdG8gbWFrZSB0aGUgMzItYml0IHZlcnNpb24gYnVpbGQgY29ycmVjdGx5IG9uIDY0LWJpdCBtYWNoaW5lcy4KCiogTW9uIFNlcCAxOSAyMDA2IEguIFBldGVyIEFudmluIDxocGFAenl0b3IuY29tPgotIEFkZCBhIHN5c2xpbnV4LXRmdHBib290IG1vZHVsZS4KLSBGYWN0b3IgZXh0bGludXggaW50byBpdHMgb3duIHBhY2thZ2UuCi0gTW92ZSB0byAle19kYXRhZGlyfSAoL3Vzci9zaGFyZSkuCgoqIFdlZCBTZXAgMjEgMjAwNSBILiBQZXRlciBBbnZpbiA8aHBhQHp5dG9yLmNvbT4KLSBJZiAvYm9vdC9leHRsaW51eC5jb25mIGV4aXN0LCBydW4gZXh0bGludXggLS11cGRhdGUuCgoqIEZyaSBTZXAgIDkgMjAwNSBILiBQZXRlciBBbnZpbiA8aHBhQHp5dG9yLmNvbT4KLSBDb3B5LCBkb24ndCBsaW5rLCAqLmMzMiBpbnRvIC9ib290OyBycG0gZG9lc24ndCBsaWtlIGJyZWFraW5nIGxpbmtzLgoKKiBUdWUgQXVnIDIzIDIwMDUgSC4gUGV0ZXIgQW52aW4gPGhwYUB6eXRvci5jb20+Ci0gUHV0ICouYzMyIGludG8gL2Jvb3QuCgoqIFRodSBEZWMgMzAgMjAwNCBILiBQZXRlciBBbnZpbiA8aHBhQHp5dG9yLmNvbT4KLSBsaWJzeXNsaW51eCBkcm9wcGVkIGluIHN5c2xpbnV4IDMuMDAuCi0gQWRkaXRpb25hbCBkb2N1bWVudGF0aW9uLgotIEFkZCBleHRsaW51eC4KCiogVHVlIERlYyAxNCAyMDA0IEguIFBldGVyIEFudmluIDxocGFAenl0b3IuY29tPgotIEFkZCBhIGRldmVsIHBhY2thZ2UgZm9yIHRoZSBjb20zMiBsaWJyYXJ5IGFkZGVkIGluIDIuMTIuCgoqIFdlZCBBcHIgMTYgMjAwMyBILiBQZXRlciBBbnZpbiA8aHBhQHp5dG9yLmNvbT4gMi4wNC0xCi0gMi4wNCByZWxlYXNlCi0gQWRkIHN1cHBvcnQgZm9yIGxpYnN5c2xpbnV4LnNvKgotIFRlbXBsYXRpemUgZm9yIGluY2x1c2lvbiBpbiBDVlMgdHJlZQoKKiBUaHUgQXByIDEwIDIwMDMgSC4gUGV0ZXIgQW52aW4gPGhwYUB6eXRvci5jb20+Ci0gMi4wMyByZWxlYXNlCi0gQWRkIHN1cHBvcnQgZm9yIGxpYnN5c2xpbnV4LmEKLSBBZGQga2V5dGFiLWxpbG8ucGwgdG8gdGhlIC91c3IvbGliL3N5c2xpbnV4IGRpcmVjdG9yeQotIE1vZGVybml6ZSBzeW50YXgKLSBTdXBwb3J0IGJ1aWxkaW5nIG9uIHg4Ni02NAoKKiBUaHUgRmViIDEzIDIwMDMgSC4gUGV0ZXIgQW52aW4gPGhwYUB6eXRvci5jb20+Ci0gMi4wMiByZWxlYXNlOyBubyBsb25nZXIgc2V0dWlkCgoqIFRodSBKYW4gMzAgMjAwMyBILiBQZXRlciBBbnZpbiA8aHBhQHp5dG9yLmNvbT4KLSBQcmVwYXJlIGZvciAyLjAxIHJlbGVhc2U7IG1ha2UgL3Vzci9iaW4vc3lzbGludXggc2V0dWlkIHJvb3QKCiogRnJpIE9jdCAyNSAyMDAyIEguIFBldGVyIEFudmluIDxocGFAenl0b3IuY29tPgotIFVwZ3JhZGUgdG8gMi4wMC4KCiogVHVlIEF1ZyAyNyAyMDAyIEguIFBldGVyIEFudmluIDxocGFAenl0b3IuY29tPgotIFVwZ3JhZGUgdG8gMS43Ni4KCiogRnJpIEp1biAxNCAyMDAyIEguIFBldGVyIEFudmluIDxocGFAenl0b3IuY29tPgotIFVwZ3JhZGUgdG8gMS43NS4KCiogU2F0IEp1biAgMSAyMDAyIEguIFBldGVyIEFudmluIDxocGFAenl0b3IuY29tPgotIFVwZ3JhZGUgdG8gMS43NC4KCiogU3VuIE1heSAyNiAyMDAyIEguIFBldGVyIEFudmluIDxocGFAenl0b3IuY29tPgotIFVwZ3JhZGUgdG8gMS43My4KCiogVHVlIEFwciAyMyAyMDAyIEguIFBldGVyIEFudmluIDxocGFAenl0b3IuY29tPgotIFVwZ3JhZGUgdG8gMS43Mi4KCiogV2VkIEFwciAxNyAyMDAyIEguIFBldGVyIEFudmluIDxocGFAenl0b3IuY29tPgotIFVwZ3JhZGUgdG8gMS43MS4KLSBVcGRhdGUgdGhlIHRpdGxlLgoKKiBXZWQgQXByIDE3IDIwMDIgSC4gUGV0ZXIgQW52aW4gPGhwYUB6eXRvci5jb20+Ci0gVXBncmFkZSB0byAxLjcwLgoKKiBTYXQgRmViICAzIDIwMDIgSC4gUGV0ZXIgQW52aW4gPGhwYUB6eXRvci5jb20+Ci0gVXBncmFkZSB0byAxLjY3LgoKKiBUdWUgSmFuICAxIDIwMDIgSC4gUGV0ZXIgQW52aW4gPGhwYUB6eXRvci5jb20+Ci0gVXBncmFkZSB0byAxLjY2LgoKKiBTYXQgRGVjIDE1IDIwMDEgSC4gUGV0ZXIgQW52aW4gPGhwYUB6eXRvci5jb20+Ci0gVXBncmFkZSB0byAxLjY1OyBtYWtlIGFwcHJvcHJpYXRlIGNoYW5nZXMuCgoqIFNhdCBBdWcgMjQgMjAwMSBILiBQZXRlciBBbnZpbiA8aHBhQHp5dG9yLmNvbT4KLSBVcGdyYWRlIHRvIDEuNjQuCgoqIE1vbiBBdWcgIDYgMjAwMSBILiBQZXRlciBBbnZpbiA8aHBhQHp5dG9yLmNvbT4KLSBVcGdyYWRlIHRvIDEuNjMuCi0gVXNlIG1ha2UgaW5zdGFsbCBzaW5jZSB0aGUgc3RvY2sgU1lTTElOVVggZGlzdHJpYnV0aW9uIG5vdyBzdXBwb3J0cwogIElOU1RBTExST09ULgoKKiBTYXQgQXByIDI0IDIwMDEgSC4gUGV0ZXIgQW52aW4gPGhwYUB6eXRvci5jb20+Ci0gVXBncmFkZSB0byAxLjYyLgoKKiBTYXQgQXByIDE0IDIwMDEgSC4gUGV0ZXIgQW52aW4gPGhwYUB6eXRvci5jb20+Ci0gRml4IG1pc3NpbmcgJWZpbGVzOyBjb3JyZWN0IG1vZGVzLgoKKiBGcmkgQXByIDEzIDIwMDEgSC4gUGV0ZXIgQW52aW4gPGhwYUB6eXRvci5jb20+Ci0gVXBncmFkZSB0byAxLjYxCi0gSW5zdGFsbCBhdXhpbGxpYXJ5IHByb2dyYW1zIGluIC91c3IvbGliL3N5c2xpbnV4CgoqIFNhdCBGZWIgMTAgMjAwMSBNYXR0IFdpbHNvbiA8bXN3QHJlZGhhdC5jb20+Ci0gMS41MgoKKiBXZWQgSmFuIDI0IDIwMDEgTWF0dCBXaWxzb24gPG1zd0ByZWRoYXQuY29tPgotIDEuNTFwcmU3CgoqIE1vbiBKYW4gMjIgMjAwMSBNYXR0IFdpbHNvbiA8bXN3QHJlZGhhdC5jb20+Ci0gMS41MXByZTUKCiogRnJpIEphbiAxOSAyMDAxIE1hdHQgV2lsc29uIDxtc3dAcmVkaGF0LmNvbT4KLSAxLjUxcHJlMywgd2l0aCBlODIwIGRldGVjdGlvbgoKKiBUdWUgRGVjIDEyIDIwMDAgVGhhbiBOZ28gPHRoYW5AcmVkaGF0LmNvbT4KLSByZWJ1aWx0IHdpdGggZml4ZWQgZmlsZXV0aWxzCgoqIFRodSBOb3YgOSAyMDAwIFRoYW4gTmdvIDx0aGFuQHJlZGhhdC5jb20+Ci0gdXBkYXRlIHRvIDEuNDkKLSB1cGRhdGUgZnRwIHNpdGUKLSBjbGVhbiB1cCBzcGVjZmlsZQotIGFkZCBzb21lIHVzZWZ1bCBkb2N1bWVudHMKCiogVHVlIEp1bCAxOCAyMDAwIE5hbGluIERhaHlhYmhhaSA8bmFsaW5AcmVkaGF0LmNvbT4KLSBhZGQgJSVkZWZhdHRyIChyZWxlYXNlIDQpCgoqIFdlZCBKdWwgMTIgMjAwMCBQcm9zcGVjdG9yIDxidWd6aWxsYUByZWRoYXQuY29tPgotIGF1dG9tYXRpYyByZWJ1aWxkCgoqIFRodSBKdWwgMDYgMjAwMCBUcm9uZCBFaXZpbmQgR2xvbXNy+GQgPHRlZ0ByZWRoYXQuY29tPgotIHVzZSAlJXtfdG1wcGF0aH0KLSBjaGFuZ2UgYXBwbGljYXRpb24gZ3JvdXAgKEFwcGxpY2F0aW9ucy9JbnRlcm5ldCBkb2Vzbid0IHNlZW0KICByaWdodCB0byBtZSkKLSBhZGRlZCBCdWlsZFJlcXVpcmVzCgoqIFR1ZSBBcHIgMDQgMjAwMCBFcmlrIFRyb2FuIDxld3RAcmVkaGF0LmNvbT4KLSBpbml0aWFsIHBhY2thZ2luZwo=