dXRpbC1saW51eC1uZyAyLjE3LjI6IE1hciAyMiAyMDEwCiogc2VlIGRvY3MvdjIuMTcuMi1SZWxlYXNlTm90ZXMgb3IgY29tcGxldGUgY2hhbmdlbG9nIGF0CiAgZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvdjIuMTcvdjIuMTcuMi1DaGFuZ2VMb2cKCnV0aWwtbGludXgtbmcgMi4xNy4xOiBGZWIgMjIgMjAxMAoqIHNlZSBkb2NzL3YyLjE3LjEtUmVsZWFzZU5vdGVzIG9yIGNvbXBsZXRlIGNoYW5nZWxvZyBhdAogIGZ0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nL3YyLjE3L3YyLjE3LjEtQ2hhbmdlTG9nCgp1dGlsLWxpbnV4LW5nIDIuMTcuMS1yYzE6IEZlYiAxNiAyMDEwCiogc2VlIGRvY3MvdjIuMTcuMS1SZWxlYXNlTm90ZXMgb3IgY29tcGxldGUgY2hhbmdlbG9nIGF0CiAgZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvdjIuMTcvdjIuMTcuMS1yYzEtQ2hhbmdlTG9nCgp1dGlsLWxpbnV4LW5nIDIuMTc6IEphbiA4IDIwMTAKKiBzZWUgZG9jcy92Mi4xNy1SZWxlYXNlTm90ZXMgb3IgY29tcGxldGUgY2hhbmdlbG9nIGF0CiAgZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvdjIuMTcvdjIuMTctQ2hhbmdlTG9nCgp1dGlsLWxpbnV4LW5nIDIuMTctcmMzOiBEZWMgMTAgMjAwOQoqIHNlZSBkb2NzL3YyLjE3LVJlbGVhc2VOb3RlcyBvciBjb21wbGV0ZSBjaGFuZ2Vsb2cgYXQKICBmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy92Mi4xNy92Mi4xNy1yYzMtQ2hhbmdlTG9nCgp1dGlsLWxpbnV4LW5nIDIuMTctcmMyOiBEZWMgOSAyMDA5Ciogc2VlIGRvY3MvdjIuMTctUmVsZWFzZU5vdGVzIG9yIGNvbXBsZXRlIGNoYW5nZWxvZyBhdAogIGZ0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nL3YyLjE3L3YyLjE3LXJjMi1DaGFuZ2VMb2cKCnV0aWwtbGludXgtbmcgMi4xNy1yYzE6IE5vdiAyMCAyMDA5Ciogc2VlIGRvY3MvdjIuMTctUmVsZWFzZU5vdGVzIG9yIGNvbXBsZXRlIGNoYW5nZWxvZyBhdAogIGZ0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nL3YyLjE3L3YyLjE3LXJjMS1DaGFuZ2VMb2cKCnV0aWwtbGludXgtbmcgMi4xNjogSnVsICAyMDA5Ciogc2VlIGRvY3MvdjIuMTYtUmVsZWFzZU5vdGVzIG9yIGNvbXBsZXRlIGNoYW5nZWxvZyBhdAogIGZ0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nL3YyLjE2L3YyLjE2LUNoYW5nZUxvZwoKdXRpbC1saW51eC1uZyAyLjE2LXJjMjogSnVsIDIgMjAwOQoqIHNlZSBkb2NzL3YyLjE2LVJlbGVhc2VOb3RlcyBvciBjb21wbGV0ZSBjaGFuZ2Vsb2cgYXQKICBmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy92Mi4xNi92Mi4xNi1yYzItQ2hhbmdlTG9nCgp1dGlsLWxpbnV4LW5nIDIuMTYtcmMxOiBKdW4gMjggMjAwOQoqIHNlZSBkb2NzL3YyLjE2LVJlbGVhc2VOb3RlcyBvciBjb21wbGV0ZSBjaGFuZ2Vsb2cgYXQKICBmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy92Mi4xNi92Mi4xNi1yYzEtQ2hhbmdlTG9nCgp1dGlsLWxpbnV4LW5nIDIuMTU6IE1heSA1IDIwMDkKKiBzZWUgZG9jcy92Mi4xNS1SZWxlYXNlTm90ZXMgb3IgY29tcGxldGUgY2hhbmdlbG9nIGF0CiAgZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvdjIuMTUvdjIuMTUtQ2hhbmdlTG9nCgp1dGlsLWxpbnV4LW5nIDIuMTUtcmMyOiBBcHIgMTcgMjAwOQoqIHNlZSBkb2NzL3YyLjE1LVJlbGVhc2VOb3RlcyBvciBjb21wbGV0ZSBjaGFuZ2Vsb2cgYXQKICBmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy92Mi4xNS92Mi4xNS1yYzItQ2hhbmdlTG9nCgp1dGlsLWxpbnV4LW5nIDIuMTUtcmMxOiBNYXIgMTggMjAwOQoqIHNlZSBkb2NzL3YyLjE1LVJlbGVhc2VOb3RlcyBvciBjb21wbGV0ZSBjaGFuZ2Vsb2cgYXQKICBmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy92Mi4xNS92Mi4xNS1yYzEtQ2hhbmdlTG9nCgp1dGlsLWxpbnV4LW5nIDIuMTQ6IEp1biA5IDIwMDgKKiBzZWUgZG9jcy92Mi4xNC1SZWxlYXNlTm90ZXMgb3IgY29tcGxldGUgY2hhbmdlbG9nIGF0CiAgZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvdjIuMTQvdjIuMTQtQ2hhbmdlTG9nCgp1dGlsLWxpbnV4LW5nIDIuMTQtcmMzCiogc2VlIGRvY3MvdjIuMTQtUmVsZWFzZU5vdGVzIG9yIGNvbXBsZXRlIGNoYW5nZWxvZyBhdAogIGZ0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nL3YyLjE0L3YyLjE0LXJjMy1DaGFuZ2VMb2cKCnV0aWwtbGludXgtbmcgMi4xNC1yYzIKKiBzZWUgZG9jcy92Mi4xNC1SZWxlYXNlTm90ZXMgb3IgY29tcGxldGUgY2hhbmdlbG9nIGF0CiAgZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvdjIuMTQvdjIuMTQtcmMyLUNoYW5nZUxvZwoKdXRpbC1saW51eC1uZyAyLjE0LXJjMQoqIHNlZSBkb2NzL3YyLjE0LVJlbGVhc2VOb3RlcyBvciBjb21wbGV0ZSBjaGFuZ2Vsb2cgYXQKICBmdHA6Ly9mdHAua2VybmVsLm9yZy9wdWIvbGludXgvdXRpbHMvdXRpbC1saW51eC1uZy92Mi4xNC92Mi4xNC1yYzEtQ2hhbmdlTG9nCgp1dGlsLWxpbnV4LW5nIDIuMTMKCiogc2VlIGRvY3MvdjIuMTMtUmVsZWFzZU5vdGVzIG9yIGNvbXBsZXRlIGNoYW5nZWxvZyBhdAogIGZ0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC91dGlscy91dGlsLWxpbnV4LW5nL3YyLjEzL3YyLjEzLUNoYW5nZUxvZwoKdXRpbC1saW51eC1uZyAyLjEzLXJjMwoKKiBzZWUgZG9jcy92Mi4xMy1SZWxlYXNlTm90ZXMgb3IgY29tcGxldGUgY2hhbmdlbG9nIGF0CiAgZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvdjIuMTMvdjIuMTMtcmMzLUNoYW5nZUxvZwoKdXRpbC1saW51eC1uZyAyLjEzLXJjMgoKKiBzZWUgZG9jcy92Mi4xMy1SZWxlYXNlTm90ZXMgb3IgY29tcGxldGUgY2hhbmdlbG9nIGF0CiAgZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvdjIuMTMvdjIuMTMtcmMyLUNoYW5nZUxvZwoKdXRpbC1saW51eC1uZyAyLjEzLXJjMQoKKiBzZWUgZG9jcy92Mi4xMy1SZWxlYXNlTm90ZXMgb3IgY29tcGxldGUgY2hhbmdlbG9nIGF0CiAgZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L3V0aWxzL3V0aWwtbGludXgtbmcvdjIuMTMvdjIuMTMtcmMxLUNoYW5nZUxvZwoKdXRpbC1saW51eCAyLjEzLXByZTcKCiogbW91bnQ6IGRlZmF1bHQgdG8gY2lmcyBpbnN0ZWFkIG9mIHNtYmZzIGZvciBzb3VyY2VzCiAgICAgICAgIHN0YXJ0aW5nIHdpdGggLy8gTGFycyBNdWVsbGVyKCkKKiBmbG9jazogZG9jdW1lbnRhdGlvbiB1cGRhdGVzIChILiBQZXRlciBBbnZpbikKKiBuZXcgdHJhbnNsYXRpb246IGlkCiogdXBkYXRlZCB0cmFuc2xhdGlvbnM6IGRlLCBpdCwgc2wsIHVrCgp1dGlsLWxpbnV4IDIuMTMtcHJlNgoKKiBnZXRvcHQ6IHVwZGF0ZWQgdG8gMS4xLjQKKiByZXBsYWNlZCBhbGwgKmxsc2VlayB2YXJpYW50cyB3aXRoIGxzZWVrCiogbWlzYyBidWlsZCBzeXN0ZW0sIGNvZGUgYW5kIGRvY3MgY2xlYW51cHMgYW5kIGZpeGVzCiogdXBkYXRlZCB0cmFuc2xhdGlvbnM6IGZyLCBpdAoKdXRpbC1saW51eCAyLjEzLXByZTUKCioge2ZzY2ssbWtmc30uY3JhbWZzOiB1cGRhdGVkIHRvIGNyYW1mcy0xLjEKKiB7ZnNjayxta2ZzfS5jcmFtZnM6IHJlbW92ZWQgUEFHRV9DQUNIRV9TSVpFIHVzYWdlCiogdW1vdW50OiBmaXggInVtb3VudCAtbiAtciIgKERlcmljayBTd2FuZXBvZWwpCiogbWlzYyBidWlsZCBzeXN0ZW0gYW5kIGNvZGUgY2xlYW51cHMgYW5kIGZpeGVzCiogdXBkYXRlZCB0cmFuc2xhdGlvbjogY2EKCnV0aWwtbGludXggMi4xMy1wcmU0CgoqIGRvbid0IGJ1aWxkIGZkaXNrIG9uIG02OGsgKE1pa2UgRnJ5c2luZ2VyKQoqIG1pc2MgYnVpbGQgc3lzdGVtIGFuZCBkb2N1bWVudGF0aW9uIGZpeGVzCiogcmVtb3ZlZCBwcm9ncmFtOiBjbGVhcgoKdXRpbC1saW51eCAyLjEzLXByZTMKCiogbWlzYyBidWxkIHN5c3RlbSBmaXhlcwoqIGNmZGlzazogZml4IGEgc2VnZmF1bHQgd2l0aCBSZWlzZXJGUyBwYXJ0aXRpb25zCiogdW1vdW50OiBkaXNhbGxvdyAtciBvcHRpb24gZm9yIG5vbi1yb290IHVzZXJzCiogdXBkYXRlZCB0cmFuc2xhdGlvbnM6IGRhLCBmciwgaXQsIG5sLCBydSwgc2wsIHRyCgp1dGlsLWxpbnV4IDIuMTMtcHJlMgoKKiBmbG9jazogcmVwbGFjZWQgd2l0aCBmbG9jay0yLjAuMiBieSBILiBQZXRlciBBbnZpbgoqIG1pc2MgYnVpbGQgc3lzdGVtIGZpeGVzLCBsaWJ0b29sIGlzIG5vIGxvbmdlciB1c2VkCiogbWlzYyBjb2RlIGZpeGVzCiogdXBkYXRlZCB0cmFuc2xhdGlvbnM6IGNhLCBmaSwgZnIsIG5sLCBydSwgdHIKCnV0aWwtbGludXggMi4xMy1wcmUxCgoqIHVzZSBHTlUgYXV0b2NvbmYvYXV0b21ha2UvbGlidG9vbCBmb3IgYnVpbGRpbmcKKiBhZGRlZCBzY2hlZHV0aWxzCiogcmVtb3ZlZCBzdXBwb3J0IGZvciBjdXJzZXMgaW1wbGVtZW50YXRpb25zIG90aGVyIHRoYW4gbmN1cnNlcwoqIHJlbW92ZWQgcHJvZ3JhbXM6IGFyY2gsIHBhc3N3ZCwgcmVzY3VlcHQsIHNldGZkcHJtLCBzbG4KKiByZW1vdmVkIG1rbWluaXgtMC4xLwoqIG1pc2MgZml4ZXMgYW5kIGRvY3VtZW50YXRpb24gdXBkYXRlcwoqIG5ldyB0cmFuc2xhdGlvbjogdmkKKiB1cGRhdGVkIHRyYW5zbGF0aW9uczogY2EsIGRlLCBmaSwgZnIsIGl0LCBubCwgcnUsIHRyCgp1dGlsLWxpbnV4IDIuMTJxCgoqIHVwZGF0ZWQgdHJhbnNsYXRpb246IG5sCgp1dGlsLWxpbnV4IDIuMTJxLXByZTIKCiogc2ZkaXNrOiBkb2N1bWVudCAtRyBvcHRpb24gaW4gLS1oZWxwIG91dHB1dAoqIHVwZGF0ZWQgdHJhbnNsYXRpb25zOiBjYSwgZXQsIGZyCgp1dGlsLWxpbnV4IDIuMTJxLXByZTEKCiogbmV3IG1haW50YWluZXIKKiBzZmRpc2s6IGFkZCAtRyBvcHRpb24gKEFuZHJpZXMgQnJvdXdlcikKKiB1cGRhdGVkIHRyYW5zbGF0aW9uczogZGUsIGVzLCBydSwgc3YsIHRyCgp1dGlsLWxpbnV4IDIuMTJwCgoqIGNmZGlzazogZml4IG51bWJlciBvZiBuZXcgcGFydGl0aW9uIHdoZW4gcGFydGl0aW9ucyBub3QgaW4gZGlzayBvcmRlcgoqIGZkaXNrOiBmaXggU3VuIGxhYmVsIGhhbmRsaW5nIGluIHNlY3RvciBtb2RlCiogbWtmczogbmV2ZXIgdHJ1bmNhdGUgZmlsZW5hbWUgKG5vdCB0aGF0IHRoYXQgZXZlciBoYXBwZW5lZCkKKiBtb3JlOiBmaXggcmVkcmF3IGZsYXcKCnV0aWwtbGludXggMi4xMm4sbwoKKiBsb21vdW50OiByZXZlcnQgcGF0Y2ggZnJvbSAyLjEyagoqIGxwdHVuZS44OiAtVCBvcHRpb24gaXMgb2Jzb2xldGUKKiBta3N3YXAsIG1rc3dhcC44LCBzd2Fwb246IHN1cHBvcnQgbGFiZWxzCiAgKHVzZSBIQVZFX0JMS0lEPW5vIGFzIGxvbmcgYXMgdGhlIGJsa2lkIGxpYnJhcnkgZG9lc250IHN1cHBvcnQgdGhpcykKKiB1bW91bnQ6IGFsbG93IHVzZXIgdW5tb3VudGluZyByZXBlYXRlZGx5IG1vdW50ZWQgbmZzIG1vdW50cwoKdXRpbC1saW51eCAyLjEybQoKKiBjZmRpc2s6IHJlY29nbml6ZSBKRlMsIHN1cHBvcnQgcmVpc2VyZnMgbGFiZWxzIChmbGF2aW8uc3RhbmNoaW5hQHRpbi5pdCkKKiBtb3VudDogZml4IG9wdGlvbiBwYXJzaW5nIGJ1ZwoqIG1vdW50Ljg6IHNldmVyYWwgdXBkYXRlcwoqIHN3YXBvbi44OiBkb2N1bWVudCAtdiBvcHRpb24KCnV0aWwtbGludXggMi4xMmwKCiogTWFrZWZpbGU6IHJlbW92ZSBjYXQtaWQtdGJsLmMgdXBvbiBtYWtlIGNsZWFuCiogZmRpc2s6IGZpeGVkIGEgYnVnIHRoYXQgd291bGQgY2F1c2UgYSBub24tdXBkYXRlIG9mIGEgc3VuIGRpc2tsYWJlbAoqIGZkaXNrOiB1c2Ugc2VjdG9yc2l6ZSBpbnN0ZWFkIG9mIDUxMiBmb3IgU0dJIChFcmljIFkuIFRoZXJpYXVsdCkKKiBmZGlzazogdXNlIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpIGZvciBhbHBoYSwgQVJNOiBhdm9pZCB1bmFsaWduZWQgYWNjZXNzZXMKKiBod2Nsb2NrOiBhY3R1YWxseSB1c2UgSEFWRV90bV9nbXRvZmYKKiBzd2Fwb246IGZpeCBwcmlvcml0eSBoYW5kbGluZwoqIHVtb3VudDogcmVmdXNlIHRvIHVubW91bnQgYW4gZW1wdHkgc3RyaW5nCgp1dGlsLWxpbnV4IDIuMTJrCgoqIGNmZGlzazogZml4ZWQgYSBzaWduZWQgY2hhcmFjdGVyIGJ1ZyBjYXVzaW5nIHByb2JsZW1zIGZvciBTcGFuaXNoIHVzZXJzCiogY29uZmlndXJlLCBNQ09ORklHOiBkZXRlY3QgZ2NjIDMuNC4wIGFuZCB1c2UgLW10dW5lIG9wdGlvbiAoTWF0dGhldyBCdXJnZXNzKQoqIGNvbmZpZ3VyZTogZG8gbm90IHJ1biAuL2NvbmZ0ZXN0IChmb3IgY3Jvc3MgY29tcGlsYXRpb24pIChOSUlCRSBZdXRha2EpCiogZnNjay5jcmFtZnM6IHRyeSB0byBnZXQgY29ycmVjdCBQQUdFX0NBQ0hFX1NJWkUKKiBsb3NldHVwOiB0cnkgdG8gZ2l2ZSBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMKKiByZWFkcHJvZmlsZTogZGVmYXVsdCBtYXAgZmlsZSBpcyAvYm9vdC9TeXN0ZW0ubWFwCiogcmRldi44OiBhZGRlZCBoaXN0b3JpY2FsIGluZm8gb24gcmFtZGlzawoqIE5ldyBGcmVuY2gsIFNwYW5pc2gsIFN3ZWRpc2ggYW5kIFR1cmtpc2ggbWVzc2FnZXMKCnV0aWwtbGludXggMi4xMmoKCiogY2FsOiBoaWdobGlnaHQgdG9kYXkgKFDDoWRyYWlnIEJyYWR5KQoqIGxvbW91bnQ6IHN0b3AgcmVhZGluZyBwYXNzd2QgYXQgTlVMLCBmaXggbG9fZW5jcnlwdCBrZXlfc2l6ZSAoV29sZnJhbSBLbGVmZikKKiBsb3NldHVwOiBhZGQgLWYgb3B0aW9uIHRvIGZpbmQgYW4gdW51c2VkIGxvb3AgZGV2aWNlCiAgKEFsZXhhbmRlciBXaWdlbiwgUmVtY28gdmFuIE1vb2spCiogbW9yZTogY29kZSBjbGVhbnVwIChKb2FjaGltIEhlbmtlKQoqIG1vdW50OiBhZGQgImdyb3VwIiBtb3VudCBvcHRpb24gKE1hcnRpbiBEaWNrb3BwKQoqIHNmZGlzazogZml4IDIuNi44IEJMS1JSUEFSVCBpb2N0bCBkYW1hZ2UgKEVyaWMgTGFtbWVydHMpCiogc3dhcG9uOiBsZXQgc3dhcG9uIC1hIHNraXAgdGhlIHN3YXBmaWxlcyBtYXJrZWQgIm5vYXV0byIgKERhbGUgUi4gV29ybGV5KQoqIHVtb3VudDogZml4IHByb2JsZW0gd2l0aCBlbXB0eSBtdGFiIChCcnlhbiBLYWR6YmFuKQoqIHVtb3VudDogdXNlIHNwZWNpYWwgdW1vdW50IHByb2dyYW0gaWYgaXQgZXhpc3RzIChSYW0gUGFpKQoqIE5ldyBEYW5pc2ggYW5kIEZyZW5jaCBtZXNzYWdlcwoKdXRpbC1saW51eCAyLjEyaQoKKiBNQ09ORklHOiBmaXggYnVpbGQgY29uZGl0aW9ucwoqIGNoZm4sIGNoc2g6IGFkZCBlcnJvciBjaGVja2luZwoqIGN5dHVuZTogdXNlIGxvY2FsIGhlYWRlciBjeWNsYWRlcy5oCiogZmRpc2s6IGZpeCBkZWZhdWx0IFNHSSB2b2x1bWUgaGVhZGVyIHNpemUgKEVyaWMgU2FuZGVlbikKKiBmc3RhYi5jOiB1c2Ugc3Ryc2lnbmFsKCkgaW5zdGVhZCBvZiBzeXNfc2lnbGlzdFtdCiogaHdjbG9jazogdXNlIDxzeXMvaW8uaD4gd2hlbiBhdmFpbGFibGUgb24gaTM4NgoqIGh3Y2xvY2s6IGRvbnQgdHJ5IEtER0hXQ0xLIG9uIGFyY2hzIG90aGVyIHRoYW4gX19tNjhrX18KKiBzZmRpc2s6IGNvcnJlY3QgdHlwbyBpbiBfX2F0dHJpYnV0ZV9fdXNlZCBub25zZW5zZQoqIHNmZGlzazogdXNlIFBBQ0tFRCBvbiBfX2FybV9fIChKZXJvZW4gRG9iYmVsYWVyZSkKKiBzZmRpc2s6IGZpeCB3YXJuaW5nIHByaW50b3V0Cgp1dGlsLWxpbnV4IDIuMTJlLGYsZyxoCgoqIGNmZGlzazogYXZvaWQgY3Jhc2ggaWYgbm8gcGFydGl0aW9uIHRhYmxlCiogZWx2dHVuZTogdGVsbCB1c2VyIHRoYXQgdGhpcyBvbmx5IHdvcmtzIG9uIDIuNCBrZXJuZWxzCiogbG9tb3VudDogY2xlYXIgcGFzc3dvcmRzIGFmdGVyIHVzZQoqIG1vdW50OiBhY2NlcHQgY29tbWVudHMgKGludHJvZHVjZWQgYnkgXDspIGluIGZzdGFiIC0gd2l0aGRyYXduIGFnYWluCiogbW91bnQ6IGFjY2VwdCBjb21tZW50cyAoc3BlY2lmaWVkIGJ5IGNvbW1lbnQ9KSBpbiBmc3RhYgoqIG1vdW50OiBzdXBwb3J0IG9jZnMsIG9jZnMyCiogW3VdbW91bnQ6IGJlIG1vcmUgY2FyZWZ1bCB3aXRoIG1hbGxvYywgdHJ5IHRvIGF2b2lkIE9PTSB3aXRoIG1hbnkgbW91bnRzCiogc2ZkaXNrOiBfX2F0dHJpYnV0ZV9fdXNlZCBub25zZW5zZSB0byBzdXBwb3J0IGdjYyAzLjQKKiBzaHV0ZG93bjogZG8gbm90IHVubW91bnQgdmFyaW91cyB2aXJ0dWFsIGZpbGVzeXN0ZW1zCgp1dGlsLWxpbnV4IDIuMTJjLGQKCiogbW91bnQuODogYWRkZWQgcmVjZW50IGV4dDIgbW91bnQgb3B0aW9ucwoqIG1vdW50OiBzdXBwb3J0IGpmcyBtb3VudC1ieS1sYWJlbCwgaW1wcm92ZSByZWlzZXJmcyBzdXBwb3J0Ciogc2ZkaXNrOiByZW1vdmUgc3RyYW5nZSAiZW5kcyBpbiBhIGRpZ2l0IiBoZXVyaXN0aWMKKiAqZmRpc2s6IHVzZSBjb21tb24gZGlza3NpemUoKSByb3V0aW5lCgp1dGlsLWxpbnV4IDIuMTJiCgoqIGNoc2g6IGltcHJvdmVkIGVycm9yIG1lc3NhZ2UKKiBkbWVzZzogYXNrIGtlcm5lbCBwcm9wZXIgYnVmZmVyIHNpemUKKiBsb3NldHVwOiBoYW5kbGUgNjQtYml0IG9mZnNldHMKKiBibG9ja2RldjogYWxzbyByZXBvcnQgQkxLR0VUU0laRTY0IHJlc3VsdAoqIGJsb2NrZGV2LCBlbHZ0dW5lLCBmZGlzazogaGFuZGxlIG5ldyBrZXJuZWwgX0lPUixfSU9XIGRlZmluZXMKKiBmZGlzazogcmVtb3ZlIHN0cmFuZ2UgImVuZHMgaW4gYSBkaWdpdCIgaGV1cmlzdGljCiogZmRpc2s6IGFsc28gbGlzdCBTb2xhcmlzIGFzIHBvc3NpYmxlIHR5cGUgZm9yIDB4ODIKKiBtb3VudDogYWRkZWQgLS1yYmluZCBvcHRpb24KKiBtb3VudDogdXNlIGJsa2lkLCB1dWlkIGxpYnJhcmllcyB3aGVuIGF2YWlsYWJsZQoqIG1vdW50OiBzdXBwb3J0IHJlaXNlcmZzIG1vdW50IGJ5IGxhYmVsCiogbW91bnQ6IGF0dGVtcHQgdG8gdXNlIHRoZSByaWdodCBkZWZpbml0aW9uIG9mIGRldl90IGluIHN0cnVjdCBsb29waW5mbwoqIG1vdW50Ljg6IGpmcyBtb3VudCBvcHRpb25zIGFkZGVkCiogcmVhZHByb2ZpbGU6IG5ldyAtcyBvcHRpb24KKiByZW5hbWUuMTogYWRkZWQgcmVmIHRvIG1tdi4xCiogcmVwbGF5OiByZW5hbWVkIHRvIHNjcmlwdHJlcGxheTsgY29ycmVjdCB0eXBvcwoqIHNjcmlwdDogZG8gbm90IHVzZSBsb2NhbGUgZm9yIHRpbWUgZGVsYXkgZmxvYXRpbmcgcG9pbnQgbnVtYmVyIGZvcm1hdAoqIHNmZGlzazogZXJyb3IgbWVzc2FnZXMgdG8gc3RkZXJyCiogTmV3IENhdGFsYW4sIER1dGNoLCBGaW5uaXNoLCBGcmVuY2gsIEdlcm1hbiwgU3BhbmlzaCwgU3dlZGlzaCwgVHVya2lzaCwKICBVa3JhaW5pYW4gbWVzc2FnZXMKCnV0aWwtbGludXggMi4xMmEKCiogY2hmbiwgY2hzaCwgbG9naW4sIHZpcHc6IFNFbGludXggc3VwcG9ydAoqIGZkaXNrOiBmaXggZm9yIGtlcm5lbHMgMi40LjE1LTIuNC4xNwoqIGZkaXNrOiBmaXggd2hlbiBhbGwgcGFydGl0aW9ucyBhcmUgaW4gdXNlCiogaHdjbG9jazogYWRkIGEgdGltZW91dCB3aGVuIHdhaXRpbmcgZm9yIGEgY2xvY2sgdXBkYXRlIChH9nJhbiBXZWluaG9sdCkKKiBpcGNzOiBjb21waWxhdGlvbiBmaXgKKiBpcGNzOiBzaG1pbmZvLnNobWFsbCBnaXZlcyBwYWdlcwoqIGxvZ2luOiB1c2UgZ2V0dXRsaW5lKCkgaW5zdGVhZCBvZiBnZXR1dGlkKCkKKiBsb2dpbjogZml4IGZvciA2NC1iaXQgdGltZV90CiogbW91bnQ6IGVmcyBzdXBwb3J0CiogcGFydHg6IGJpZ2VuZGlhbiBmaXgKKiByZWFkcHJvZmlsZTogc3VwcG9ydCBmb3IgNjQtYml0IGFkZHJlc3NlcwoqIHNldHRlcm06IGZpeCBrbG9nY3RsIGVycm9yIG1lc3NhZ2UgKEpvZXJuIEhlaXNzbGVyKQoqIHNldHRlcm0uMTogY2xhcmlmaWNhdGlvbgoqIHNmZGlzazogZml4IGNoZWNrIGZvciBpc19pZGVfY2Ryb21fb3JfdGFwZQoqIHVtb3VudDogc2tpcCBwcm9jLCBkZXZmcywgZGV2cHRzIG9uIHVtb3VudCAtYQoKdXRpbC1saW51eCAyLjEyCgoqIGxvc2V0dXA6IGNyeXB0b2xvb3Agc3VwcG9ydAoqIGxvc2V0dXA6IC1wIG9wdGlvbiBzcGVjaWZpZXMgZmQgZm9yIHBhc3NwaHJhc2UKKiBmZGlzazogc2dpIGxheW91dCBmaXgKKiBtb3VudDogLXAgb3B0aW9uIHNwZWNpZmllcyBmZCBmb3IgcGFzc3BocmFzZQoqIG1vdW50OiByZWNvZ25pemUgc29tZSBQQ0RPUyBmbG9wcGllcwoqIHVtb3VudDogaW4gInVtb3VudCBuYW1lIiwgZmlyc3QgdHJ5IHRvIGludGVycHJldCAibmFtZSIgYXMgYSBtb3VudCBwb2ludAoKdXRpbC1saW51eCAyLjEycHJlCgoqIENhdGFsYW4gbWVzc2FnZXMgKEFudG9uaSBCZWxsYSBQZXJleikKKiBEYW5pc2ggbWVzc2FnZXMgKENsYXVzIEhpbmRzZ2F1bCkKKiBEdXRjaCBtZXNzYWdlcyAoVGFjbyBXaXR0ZSkKKiBGaW5uaXNoIG1lc3NhZ2VzIChMYXVyaSBOdXJtaSkKKiBGcmVuY2ggbWVzc2FnZXMgKE1pY2hlbCBSb2JpdGFpbGxlKQoqIEdlcm1hbiBtZXNzYWdlcyAoTWljaGFlbCBQaWVmZWwpCiogU2xvdmVuaWFuIG1lc3NhZ2VzIChQcmltb3ogUGV0ZXJsaW4pCiogU3BhbmlzaCBtZXNzYWdlcyAoU2FudGlhZ28gVmlsYSBEb25jZWwpCiogU3dlZGlzaCBtZXNzYWdlcyAoQ2hyaXN0aWFuIFJvc2UpCiogVHVya2lzaCBtZXNzYWdlcyAoTmlsZ/xuIEJlbG1hIEJ1Z/xuZXIpCiogY2ZkaXNrOiBsb2NhbGl6ZSB0aGUgWS9OIGFuc3dlciwgaW1wcm92ZSBwcmludGluZyBsb2NhbGl6ZWQgbWVzc2FnZXMKKiBjZmRpc2s6IG1ha2UgdmFyaW91cyB2YXJpYWJsZXMgbG9uZyBsb25nIC0gc29tZSBkaXNrcyBhcmUgY2xvc2UgdG8gMiBUQgoqIGNmZGlzazogdXNlIEJMS0dFVFNJWkU2NAoqIGZkaXNrOiBtYWtlIHZhcmlvdXMgdmFyaWFibGVzIHVuc2lnbmVkIHRvIGxlbmd0aGVuIHRoZSBsaWZlIG9mIDMyLWJpdCB2YXJzCiogZmRpc2s6IHNvbWUgc2dpIGZpeGVzIChQaGlsbGlwIEtlc2xpbmcpCiogZmRpc2s6IGs9MTAwMCwgSz0xMDI0CiogZmRpc2s6IHJlbW92ZWQgbGFzdCBvY2N1cnJlbmNlcyBvZiBIRElPX1JFUQoqIGZkaXNrOiB1c2UgQkxLR0VUU0laRTY0CiogaHdjbG9jazogZml4IHJ0YyB0ZXN0IChIZWlrbyBadWVya2VyKQoqIGxvZ2luOiBzZXQgYSB0aW1lb3V0IG9uIHByaW50aW5nIHRoZSB0aW1lb3V0IG1lc3NhZ2UgKFJvYmVydCBBbWJyb3NlKQoqIG1kNTogeDg2XzY0IGZpeCAobW1qKQoqIG1vcmU6IFBPU0lYIGZpeGVzCiogbW91bnQ6IGRvIG5vdCBzdXBwbHkgTVNfTUdDX1ZBTCB3aGVuIHRoZXJlIGFyZSBjb25mbGljdGluZyBmbGFncwoqIG1vdW50OiBuY3AgYW5kIHNtYiBhcmUgY2FsbGVkIHNtYmZzIGFuZCBuY3BmcyAtIGdsb2JhbCBjaGFuZ2UKKiBtb3VudDogYWRkIHN1cHBvcnQgZm9yIHh2bSBtb3VudCBieSBsYWJlbCAoRXJpYyBTYW5kZWVuKQoqIG1vdW50OiBjb3JyZWN0IGhmcyBtYWdpYyByZWNvZ25pdGlvbgoqIG1vdW50OiBrZWVwIG9yaWdpbmFsIHVtYXNrIC0gaXQgaW5mbHVlbmNlcyB0aGUgbW91bnQgY2FsbCAobW1qKQoqIHJhdy44OiBkb2N1bWVudGVkIHVuYmluZGluZyBvZiByYXcgZGV2aWNlcwoqIHJlYWRwcm9maWxlOiBmaXhlZCBvZmYtYnkgZWlnaHQgZXJyb3IgKFdlcm5lciBBbG1lc2JlcmdlcikKKiBzY3JpcHQ6IGFkZCAtYyBvcHRpb24gKFdheW5lIERhdmlzb24pCiogc2ZkaXNrLjg6IGFkZGVkIGFuIGV4YW1wbGUgb2YgcGFydGl0aW9uaW5nIHdpdGggbG9naWNhbCBwYXJ0aXRpb25zCiogc2ZkaXNrOiBvbmx5IGFkZCBhIEFBNTUgc2lnbmF0dXJlIGZvciBET1MtdHlwZSBwYXJ0aXRpb24gdGFibGVzCiogdGFpbGY6IG5ldyAoUmlrIEZhaXRoKQoKdXRpbC1saW51eCAyLjExegoKKiBDYXRhbGFuIG1lc3NhZ2VzIChBbnRvbmkgQmVsbGEgUGVyZXopCiogRGFuaXNoIG1lc3NhZ2VzIChDbGF1cyBIaW5kc2dhdWwpCiogRHV0Y2ggbWVzc2FnZXMgKFRhY28gV2l0dGUpCiogRmlubmlzaCBtZXNzYWdlcyAoTGF1cmkgTnVybWkpCiogRnJlbmNoIG1lc3NhZ2VzIChNaWNoZWwgUm9iaXRhaWxsZSkgLSBIVVJSQVkhCiogR2VybWFuIG1lc3NhZ2VzIChNaWNoYWVsIFBpZWZlbCkKKiBTbG92ZW5pYW4gbWVzc2FnZXMgKFByaW1veiBQZXRlcmxpbikKKiBTcGFuaXNoIG1lc3NhZ2VzIChTYW50aWFnbyBWaWxhIERvbmNlbCkKKiBTd2VkaXNoIG1lc3NhZ2VzIChDaHJpc3RpYW4gUm9zZSkKKiBUdXJraXNoIG1lc3NhZ2VzIChOaWxn/G4gQmVsbWEgQnVn/G5lcikKKiBnZXRvcHQ6IHJlcGxhY2VkIGdldG9wdC0xLjEuMiBieSBnZXRvcHQtMS4xLjMgKEZyb2RvIExvb2lqYWFyZCkKKiBta2NyYW1mczogY2hhbmdlIGRlZmF1bHQgYmxvY2tzaXplIGZvciBpYTY0IGFuZCBhbHBoYQoqIG1vcmUuaGVscDogcmVtb3ZlZCAoaXQgaXMgYnVpbHQtaW4gbm93LCBhbmQgdHJhbnNsYXRlZCkKKiBtb3VudDogYWRkIC1pIG9wdGlvbiAoaW5oaWJpdCBjYWxsaW5nIGV4dGVybmFsIG1vdW50IHByb2dyYW1zKQoqIG1vdW50OiBjaGFuZ2UgZGVmYXVsdDogZG8gcmVzb2x2ZSBzeW1saW5rcwoqIHJlYWRwcm9maWxlOiBsb29rIGZvciBTeXN0ZW0ubWFwIGFsc28gaW4gL2Jvb3QvU3lzdGVtLm1hcC1gdW5hbWUgLXJgIChtbWopCiogc2ZkaXNrOiBhbHNvIHRyYW5zbGF0ZSAic3RhcnQiIGFuZCAiZW5kIjsgcy9NQi9NaUIvCgp1dGlsLWxpbnV4IDIuMTF5CgoqIERhbmlzaCBtZXNzYWdlcyAoQ2xhdXMgSGluZHNnYXVsKQoqIEZpbm5pc2ggbWVzc2FnZXMgKExhdXJpIE51cm1pKQoqIEdlcm1hbiBtZXNzYWdlcyAoTWljaGFlbCBQaWVmZWwpCiogU3BhbmlzaCBtZXNzYWdlcyAoU2FudGlhZ28gVmlsYSBEb25jZWwpCiogU3dlZGlzaCBtZXNzYWdlcyAoQ2hyaXN0aWFuIFJvc2UpCiogY2ZkaXNrOiBpbXByb3ZlIGVzY2FwZSBzZXEgcmVjb2duaXRpb24gd2hlbiBjb21waWxlZCB3aXRoIHNsYW5nCiogZmRpc2s6IGRlY2ltYWwgdW5pdHMKKiBod2Nsb2NrL3J0Yy5jOiBtaW5vciBjbGVhbnVwIChKb2FjaGltIEhlbmtlKQoqIGlwY3M6IGNvbXBpbGF0aW9uIGZpeAoqIG1vcmU6IGtpbGwgZXh0ZXJuYWwgaGVscCBmaWxlIChKb2FjaGltIEhlbmtlKQoqIG1vdW50OiBmaXggTEFCRUw9IGhhbmRsaW5nIGZvciB1c2VyIHVtb3VudAoqIG1vdW50OiBkb24ndCBhYm9ydCBvbiByZWFkIGVycm9yIG9uIHBob3RvY2RzIChHeW9yZ3kgS292ZXNkaSkKKiBtb3VudC44OiBhZGQgZG1hc2sgYW5kIGZtYXNrIHZmYXQgbW91bnQgb3B0aW9ucwoqIHBnOiBjb21waWxhdGlvbiBmaXggKEpvYWNoaW0gSGVua2UpCiogc2NyaXB0OiBsb2NhbGl6ZWQgdGltZSBzdHJpbmdzIChHb2VyYW4gVWRkZWJvcmcpCiogc2V0dGVybTogYWNjZXB0IGRldmZzIG5hbWUgKEpvYWNoaW0gSGVua2UpCiogc2ltcGxlaW5pdDogc2VjdXJpdHk6IHJlZnVzZSBpbml0Y3RsX2ZkIGlmIHNldHRpbmcgRkRfQ0xPRVhFQyBmYWlscwoqIHVtb3VudDogYWxsb3cgdXNlciB1bW91bnQgYWZ0ZXIgbW91bnQgYnkgbGFiZWwgb3IgdXVpZAoKdXRpbC1saW51eCAyLjExeAoKKiBEYW5pc2ggbWVzc2FnZXMgKENsYXVzIEhpbmRzZ2F1bCkKKiBEdXRjaCBtZXNzYWdlcyAoVGFjbyBXaXR0ZSkKKiBGaW5uaXNoIG1lc3NhZ2VzIChMYXVyaSBOdXJtaSkKKiBHZXJtYW4gbWVzc2FnZXMgKE1pY2hhZWwgUGllZmVsKQoqIFN3ZWRpc2ggbWVzc2FnZXMgKENocmlzdGlhbiBSb3NlKQoqIFR1cmtpc2ggbWVzc2FnZXMgKE5pbGf8biBCZWxtYSBCdWf8bmVyKQoqIGNmZGlzazogY29ycmVjdCBlcnJvciBwcmludG91dAoqIGZkaXNrOiBhbGxvdyBhZGRpdGlvbiBvZiBhIG5ldyBwYXJ0aXRpb24gd2hlbiBsb2dpY2FscyBhbGwgdXNlZAogIGJ1dCBwcmltYXJ5IGZyZWUKKiBod2Nsb2NrOiBkZXRlY3Qgc3lzdGltZSBqdW1wcyBiYWNrd2FyZCBkdXJpbmcgc2V0dGluZyBod2Nsb2NrCiogbWtmcy5jcmFtZnM6IGRvIG5vdCBtbWFwIGFsbCBmaWxlcyBzaW11bHRhbmVvdXNseQoqIG1rZnMuY3JhbWZzOiBtYWtlIGJsb2Nrc2l6ZSBzZXR0YWJsZQoqIG1rZnMubWluaXg6IGNvcnJlY3QgZXJyb3IgcHJpbnRvdXQKKiBta3N3YXAuODogbm93IG1heCAzMiBzd2Fwc3BhY2VzCiogbW91bnQ6IG5ldyAtLXJiaW5kIGZsYWcsIGZvciByZWN1cnNpdmUgbG9vcGJhY2sgbW91bnRzCiogbW91bnQsIHVtb3VudDogbmV3IC1PIG9wdGlvbiAoTWljaGFlbCBLLiBKb2huc29uKQoqIG1vdW50Ljg6IC1PIGFuZCB3aW45NSBvcHRpb25zIGRvY3VtZW50ZWQKKiBzZXRwd25hbS5jOiBvcGVuIHRlbXAgcHcgZmlsZSB3aXRoIE9fRVhDTAoqIHNpbXBsZWluaXQ6IGZpeCBmb3IgInNwYXduIHRvbyBmYXN0IiAoRGVuaXMgVmxhc2Vua28pCiogc3dhcG9uOiBuZXcgLWUgb3B0aW9uIChFcmlrIFRyb2FuKQoKdXRpbC1saW51eCAyLjExdwoKKiBjZmRpc2ssIGZkaXNrOiBhbGxvdyBzbGlnaHRseSBsYXJnZXIgZGlzayBzaXplcwoqIGZkaXNrOiBNYWtlZmlsZTogYWxzbyBmb3IgbTY4IChzdW4zKSAoS2FqLU1pY2hhZWwgTGFuZykKKiBmZGlzazogYWxsb3cgdG8gdXNlIHRoZSBsYXN0IHBhcnRpYWwgY3lsaW5kZXIsIGNoYW5nZSBkaXNwbGF5IGZvcm1hdAoqIGZkaXNrOiBkbyBub3QgYXNrIHBhcnRpdGlvbiBudW1iZXIgaW4gY2FzZSB0aGVyZSBpcyBvbmx5IG9uZSBjaG9pY2UKKiBmZGlzazogbmV3IHN1bmxhYmVsIGZpeAoqIGxvZ2luOiBmaXggcG9zc2libGUgbG9jYWwgcm9vdCBleHBsb2l0IChXb2pjaWVjaCBQdXJjenluc2tpKQoqIG1vcmU6IGJpZ2VuZGlhbiBmaXgKCnV0aWwtbGludXggMi4xMXYKCiogQ2F0YWxhbiBtZXNzYWdlcyAoQW50b25pIEJlbGxhIFBlcmV6KQoqIEZpbm5pc2ggbWVzc2FnZXMgKExhdXJpIE51cm1pKQoqIFZlcnkgZmV3IFJ1c3NpYW4gbWVzc2FnZXMgKHBhbml2YW5AeWFuZGV4LnJ1KQoqIFNsb3ZlbmlhbiBtZXNzYWdlcyAoUHJpbW96IFBldGVybGluKQoqIFNwYW5pc2ggbWVzc2FnZXMgKFNhbnRpYWdvIFZpbGEgRG9uY2VsKQoqIFN3ZWRpc2ggbWVzc2FnZXMgKENocmlzdGlhbiBSb3NlKQoqIFR1cmtpc2ggbWVzc2FnZXMgKE5pbGf8biBCZWxtYSBCdWf8bmVyKQoqIGZkaXNrOiBhZGQgLUMsIC1ILCAtUyBjb21tYW5kIGxpbmUgb3B0aW9ucwoqIGZkaXNrOiBhbGxvdyBjaGFuZ2luZyB0eXBlIDAKKiBta3N3YXA6IGVuYWJsZSB1c2Ugb2YgPiAyR0Igc3dhcHNwYWNlCiogbW9yZTogdHJhbnNsYXRpb24gZml4CiogbW91bnQ6IHNldCB1bWFzayAoU2ViYXN0aWFuIEtyYWhtZXIpCiogbW91bnQ6IHRlc3QgYm90aCBsZSBhbmQgYmUgdmVyc2lvbiBvZiBjcmFtZnMgbWFnaWMgKE9sYWYgSGVyaW5nKQoqIG1vdW50OiByZWNvZ25pemUgT3JhY2xlIG1hZ2ljCiogcGc6IHVzZSBmc2Vla282NCBhbmQgZnRlbGxvNjQgd2hlbiBhdmFpbGFibGUKCnV0aWwtbGludXggMi4xMXUKCiogRGFuaXNoIG1lc3NhZ2VzIChDbGF1cyBIaW5kc2dhdWwpCiogR2VybWFuIG1lc3NhZ2VzIChNaWNoYWVsIFBpZWZlbCkKKiBTcGFuaXNoIG1lc3NhZ2VzIChTYW50aWFnbyBWaWxhIERvbmNlbCkKKiBTd2VkaXNoIG1lc3NhZ2VzIChDaHJpc3RpYW4gUm9zZSkKKiBUdXJraXNoIG1lc3NhZ2VzIChOaWxn/G4gQmVsbWEgQnVn/G5lcikKKiBjb25maWd1cmU6IGZvciBmc2NrLmNyYW1mcywgbWtmcy5jcmFtZnM6IGFkZCB0ZXN0IGZvciBsaWJ6CiogdGV4dC11dGlscy9NYWtlZmlsZTogcGcgZml4IChUb29tYXMgUm9zaW4pCiogcG8vTWFrZWZpbGU6IHR5cG8gZml4IChTaWx2YW4gTWluZ2hldHRpKQoqIGFnZXR0eTogdXNlIHNhbWUgdGVzdCBhcyBsb2dpbiBkb2VzIHRvIGZpbmQgdXRtcCBlbnRyeQoqIGZkaXNrOiBmaXggZm9yIGZkaXNrIG9uIGVtcHR5IGRpc2sgKE1pY2hhZWwgRC4gQmxhY2spCiogaHdjbG9jazogY29tcGlsYXRpb24gZml4IG9uIGFscGhhCiogbW91bnQ6IGFkZCBtb3VudCBieSBsYWJlbCBmb3IgamZzIChDaHJpc3RvcGggSGVsbHdpZykKKiBtb3VudDogYWRkIG1vdW50IGJ5IGxhYmVsIGZvciBldm1zIChMdWNpYW5vIENoYXZleikKKiBtb3VudDogYWxsb3cgcmVndWxhciBmaWxlcyB3aGVuIGd1ZXNzaW5nIChNaWNoYWwgU3ZlYykKKiBwYXJ0eC9ncHQuYzogZml4IHNpemUgY29tcHV0YXRpb24gKE1hdHQgRG9tc2NoKQoqIHJlYWRwcm9maWxlOiBuZXcgb3B0aW9uIC1iIChEYXZpZCBNb3NiZXJnZXIpCiogdW1vdW50OiBkb24ndCB1bW91bnQgZGV2ZnMgdXBvbiB1bW91bnQgLWEgKERhdmlkIEdpbGJlcnQpCgp1dGlsLWxpbnV4IDIuMTF0CgoqIGZkZm9ybWF0OiByZW1vdmUgdGVzdCBvbiBtYWpvcgoqIGZzY2suY3JhbWZzOiBhZGRlZCBOTFMKKiBmZGlzazogZml4IGRldmljZSBuYW1lcyB3aXRoIHN1bmRpc2tsYWJlbHMgdW5kZXIgZGV2ZnMgKEthai1NaWNoYWVsIExhbmcpCiogZmRpc2s6IG1pbm9yIHBvbGlzaGluZwoqIGh3Y2xvY2s6IGFsc28gaGFuZGxlIEVOT1RUWSBpb2N0bCByZXR1cm4gKE1hY2llaiBXLiBSb3p5Y2tpKQoqIGh3Y2xvY2s6IG1pbm9yIHBvbGlzaGluZwoqIGlwY3JtLjg6IG1pbm9yIHBvbGlzaGluZwoqIG1rZnMuY3JhbWZzOiBhZGRlZCBOTFMKKiBta2ZzLmNyYW1mczogYWRkZWQgLXYgKHZlcmJvc2UpIG9wdGlvbiwgYW5kIG1hZGUgZGVmYXVsdCBzaWxlbnQKKiBtb3VudDogcGF0Y2ggZm9yIG1ha2UgLWogKFJlZEhhdCkKKiBzd2Fwb2ZmOiBtaW5vciBwb2xpc2hpbmcKCnV0aWwtbGludXggMi4xMXMKCiogRXN0b25pYW4gbWVzc2FnZXMgKE1lZWxpcyBSb29zKQoqIEZyZW5jaCBtZXNzYWdlczogc29tZSBtaW5vciBjb3JyZWN0aW9ucwoqIEdlcm1hbiBtZXNzYWdlcyAoTWljaGFlbCBQaWVmZWwpCiogU3BhbmlzaCBtZXNzYWdlcyAoU2FudGlhZ28gVmlsYSBEb25jZWwpCiogU3dlZGlzaCBtZXNzYWdlcyAoQ2hyaXN0aWFuIFJvc2UpCiogVHVya2lzaCBtZXNzYWdlcyAoTmlsZ/xuIEJlbG1hIEJ1Z/xuZXIpCiogTUNPTkZJRzogYWxsb3cgIm1ha2UgRElTQUJMRV9OTFM9eWVzIDx0YXJnZXQ+IiAoUGV0ZXIgQnJlaXRlbmxvaG5lcikKKiBjb25maWd1cmU6IGRvbid0IHJ1biAuL2NvbmZ0ZXN0IC0gYmV0dGVyIGZvciBjcm9zcy1jb21waWxhdGlvbiAoTWFnbnVzIERhbW0pCiogZmRpc2s6IGZpeGVzIGZvciBkaXNrcyB3aXRoIE9TRi8xIGxhYmVsCiogZnNjay5jcmFtZnM6IG5ldyAoZnJvbSBrZXJuZWwgc291cmNlKQoqIGh3Y2xvY2s6IGltcHJvdmVkIGFkanRpbWUgaGFuZGxpbmcgKEphbWVzIFAuIFJ1dGxlZGdlKQoqIGh3Y2xvY2s6IHJlbW92ZSBzaGhvcHRzIHN0dWZmCiogaXBjczogcmVtb3ZlIHVudXNlZCBoZWFkaW5nIChNaWNoYWVsIEtlcnJpc2spCiogbGluZTogcmVwbGFjZSBieSBDIHZlcnNpb24gLSB0aGUgc2ggdmVyc2lvbiB3YXMgYnJva2VuIChHdW5uYXIgUml0dGVyKQoqIGxvZ2luOiBkZWZhdWx0IHJvb3QgcGF0aDogYWRkZWQgL3Vzci9sb2NhbC9bc11iaW4gKFJlZEhhdCkKKiBta2ZzLmNyYW1mczogbmV3IChmcm9tIGtlcm5lbCBzb3VyY2UpCiogbW91bnQ6IHdoZW4gbm8gdHlwZSBpcyBrbm93biwgYXNzdW1lIHRoYXQgcHJlZml4IC8vIGltcGxpZXMgc2FtYmEgKFJlZEhhdCkKKiBtb3VudCAtYTogYXZvaWQgc3RhdCBvbiBkZXZpY2VzIHRoYXQgaGF2ZSBub2F1dG8gb3B0aW9uIChKZXJvZW4gTW9zdGVydCkKKiBtb3VudCBieSBsYWJlbDogaWdub3JlIFJBSUQgcGFydGl0aW9ucyAoUmVkSGF0KQoqIFt1XW1vdW50OiBmc3RhYi5jIGZpeCAoZWpiQHFsLm9yZykKKiBwZzogbmV3IChHdW5uYXIgUml0dGVyKQoqIHNmZGlzazogc21hbGwgQlNEIHBhcnRpdGlvbiBmaXgKKiBzd2Fwb2ZmIC1hOiBhbHNvIGRvIHN3YXBvZmYgb24gYWxsIGZpbGVzIGZvdW5kIGluIC9wcm9jL3N3YXBzCiogc3dhcG9uIC1hOiBza2lwIGZpbGVzIGFscmVhZHkgZm91bmQgaW4gL3Byb2Mvc3dhcHMKCnV0aWwtbGludXggMi4xMXIKCiogRXN0b25pYW4gbWVzc2FnZXMgKE1lZWxpcyBSb29zKQoqIEdlcm1hbiBtZXNzYWdlcyAoTWljaGFlbCBQaWVmZWwpCiogU3BhbmlzaCBtZXNzYWdlcyAoU2FudGlhZ28gVmlsYSBEb25jZWwpCiogU3dlZGlzaCBtZXNzYWdlcyAoQ2hyaXN0aWFuIFJvc2UpCiogVHVya2lzaCBtZXNzYWdlcyAoTmlsZ/xuIEJlbG1hIEJ1Z/xuZXIpCiogTUNPTkZJRzogbW92ZSAkKENGTEFHUykgdG8gdGhlIGVuZCB0byBhbGxvdyBvdmVycmlkZXMgKEtldmluIFAuIEZsZW1pbmcpCiogY2FsOiB0aW55IGZpeCAoTWl0c3VydSBDaGluZW4pCiogZmRpc2s6IGF2b2lkIDxsaW51eC9oZHJlZy5oPgoqIGZkaXNrOiB4ODZfNjQgcGF0Y2ggKE1hZHMgTWFydGluIEr4cmdlbnNlbikKKiBod2Nsb2NrLjg6IHpvbmVpbmZvIGlzIG5vdyBpbiAvdXNyL3NoYXJlCiogbWtzd2FwOiByZXBvcnQgaW4gS2lCIGluc3RlYWQgb2YgYnl0ZXMuCgp1dGlsLWxpbnV4IDIuMTFxCgoqIGZkaXNrOiBnZW9tZXRyeSBpbXByb3ZlbWVudAoqIGxvZ2luOiBvcGVuIHR0eSBmaXggKERlbmlzIFZsYXNlbmtvKQoqIG1vcmU6IHdpZGUgY2hhcmFjdGVyIHBhdGNoZXMgKE1pdHN1cnUgQ2hpbmVuKQoqIG1vdW50OiBjb21wbGFpbiBvbiBtb3VudC1ieS1sYWJlbCB3aGVuIGxhYmVsIGlzIG5vdCB1bmlxdWUgKE1hdHQgQ29wcGluZykKKiBwYXJ0eDogYWRkIEdVSUQgUGFydGl0aW9uIFRhYmxlcyAoTWF0dCBEb21zY2gpCgp1dGlsLWxpbnV4IDIuMTFwCgoqIERhbmlzaCBtZXNzYWdlcyAoQ2xhdXMgSGluZHNnYXVsKQoqIEdlcm1hbiBtZXNzYWdlcyAoS2FybCBFaWNod2FsZGVyKQoqIFNwYW5pc2ggbWVzc2FnZXMgKFNhbnRpYWdvIFZpbGEgRG9uY2VsKQoqIFN3ZWRpc2ggbWVzc2FnZXMgKENocmlzdGlhbiBSb3NlKQoqIFR1cmtpc2ggbWVzc2FnZXMgKE5pbGf8biBCZWxtYSBCdWf8bmVyKQoqIGlwY3JtOiBtYWtlIFBPU0lYIGNvbXBhdGlibGUgKEFuZHJlIENvcndpbiBNYXp6b25lKQoqIGlwY3JtLjg6IGlkZW0KKiBraWxsOiBmaXhlZCBNYWtlZmlsZQoqIGxvZ2luOiBzZXRzaWQgZml4ZXMKKiBta3N3YXA6IG1heCBzaXplIG9mIHN3YXAgc3BhY2UgaXMgdmVyeSBsYXJnZSAoUGV0ZXIgQ2h1YmIpCiogbW91bnQ6IEpGUyBzdXBwb3J0IGZvciBtb3VudC1ieS1sYWJlbCAoaGNoKQoqIG5mc21vdW50OiBjaGVjayBmb3IgPHJwY3N2Yy9uZnNfcHJvdC5oPiAoaGNoKQoqIHJlYWRwcm9maWxlOiBrZWVwIHRyYWNrIG9mIGxpbmUgbnVtYmVycyAoSm9obiBMZXZvbikKKiB1bW91bnQ6IGZpeCBmb3IgTU5UX0RFVEFDSAoKdXRpbC1saW51eCAyLjExbwoKKiBFc3RvbmlhbiBtZXNzYWdlcyAoTWVlbGlzIFJvb3MpCiogSmFwYW5lc2UgbWVzc2FnZXMgKERhaXN1a2UgWWFtYXNoaXRhKQoqIFNwYW5pc2ggbWVzc2FnZXMgKFNhbnRpYWdvIFZpbGEgRG9uY2VsKQoqIGNhbDogb3B0aW9uIC1zOiBTdW5kYXkgaXMgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrCiogY2FsLjE6IHVwZGF0ZWQKKiBjZmRpc2s6IGdpdmUgbm90IG9ubHkgYnl0ZXMgYnV0IGFsc28gTUIgb3IgR0IgZm9yIGNsYXJpdHkuCiogY29scm06IHdpZGUgY2hhcmFjdGVyIGZpeCAoRWxsaW90IExlZSkKKiAqZmRpc2s6IGFkZGVkIERhcndpbiB0eXBlcyAoVmluY2VudCBCb3VyZ29uamVuKQoqIGZzdGFiLjU6IHVwZGF0ZWQKKiBoZXhkdW1wOiAtQyBvcHRpb24KKiBod2Nsb2NrOiBjbW9zLmM6IGRvIG5vdCBpbmNsdWRlIDxhc20vaW8uaD4gb24gYWxwaGEKKiBtb3VudDogaW1wcm92ZWQgZGV0ZWN0aW9uIG9mIHVmcyAoYW5kIHNsb3dkb3duIG9mIGRldGVjdGlvbiBvZiBpc285NjYwKQoqIG1vdW50Ljg6IGFkZGVkIGluZm8gb24gKiBpbiAvZXRjL2ZpbGVzeXN0ZW1zLCBzaG9ydG5hbWUgb3B0aW9uIG9mIHZmYXQsCiAgbW91bnQgLS1tb3ZlLCB1ZGYsIHJldHVybiBjb2RlcwoqIHJhdzogdHJ5IC9kZXYvcmF3L3Jhd2N0bCB3aGVuIC9kZXYvcmF3Y3RsIGZhaWxzIChUaGllcnJ5IFZpZ25hdWQpCiogcmMuc2VyaWFsOiByZW1vdmVkIC0gc2V0c2VyaWFsIGlzIG5vIGxvbmdlciBpbiB1dGlsLWxpbnV4IChrcm9tSngpCiogUkVBRE1FLmFkbXV0aWw6IHJlbW92ZWQgLSBvbmx5IG9mIGhpc3RvcmljYWwgaW50ZXJlc3QKKiBSRUFETUUuYm9vdHV0aWxzLTAuMTogcmVtb3ZlZCAtIG9ubHkgb2YgaGlzdG9yaWNhbCBpbnRlcmVzdAoqIHNjcmlwdDogc2VjdXJpdHkgZml4Ciogc2ZkaXNrOiBpbXByb3ZlZCBnZW9tZXRyeSBkZXRlY3Rpb247IHdpZGVyIGNvbHVtbnM7IGRlZmF1bHQgZGlza3MgZnJvbQogIC9wcm9jL3BhcnRpdGlvbnMKKiB1bW91bnQ6IHBlcm1pc3Npb24gdGVzdCBvd25lciB1bW91bnQKKiB3YWxsLjE6IGFkZGVkIHN1aWQgcmVzdHJpY3Rpb24KCnV0aWwtbGludXggMi4xMW4KCiogRGFuaXNoIG1lc3NhZ2VzIChDbGF1cyBIaW5kc2dhdWwpCiogR2VybWFuIG1lc3NhZ2VzIChLYXJsIEVpY2h3YWxkZXIpCiogU3dlZGlzaCBtZXNzYWdlcyAoQ2hyaXN0aWFuIFJvc2UpCiogVHVya2lzaCBtZXNzYWdlcyBub3cgaW4gVVRGLTggKE5pbGf8biBCZWxtYSBCdWf8bmVyKQoqIGJsb2NrZGV2OiBhZGQgLS1yZXBvcnQgb3B0aW9uCiogY2FsOiBmaXggZm9yIHdpZGUgbXVsdGlieXRlLWNoYXIgKE1vdG9ub2J1IEljaGltdXJhKQoqIGNmZGlzazogcmVjb2duaXplIGV4dDMgYW5kIHJlaXNlcmZzIChGbGF2aW8gU3RhbmNoaW5hKQoqIGZzY2subWluaXg6IGkxOG4gY2hhbmdlcwoqIGlwYy57aW5mbyx0ZXhpfTogbWlub3IgY29ycmVjdGlvbgoqIGxvZ2luOiBjb21waWxhdGlvbiBmaXggKEphcm9zbGF3IEouIFB5c3pueSkKKiBtb3VudC44OiB0bXBmcyBtb3VudCBvcHRpb25zIChLYXJsIEVpY2h3YWxkZXIpCiogbW91bnQ6IHJlY29nbml6ZSBtaW5peCB2MgoqIG1vdW50OiBzdXBwb3J0IG1vdW50LWJ5LWxhYmVsIGFsc28gZm9yIGx2bSAoS2lyYnkgQm9obGluZykKKiBtb3VudDogb3JkZXIgZ3Vlc3Npbmcgb2YgZnN0eXBlcyBhY2NvcmRpbmcgdG8gc2VlayBvZmZzZXQKKiBwaXZvdF9yb290OiBjb21waWxhdGlvbiBmaXggZm9yIGlhNjQKKiByZWFkcHJvZmlsZTogYnl0ZSBvcmRlciBhdXRvLWRldGVjdGlvbiAoV2VybmVyIEFsbWVzYmVyZ2VyKQoKdXRpbC1saW51eCAyLjExbQoKKiBEYW5pc2ggbWVzc2FnZXMgKENsYXVzIEhpbmRzZ2F1bCkKKiBHZXJtYW4gbWVzc2FnZXMgKEthcmwgRWljaHdhbGRlcikKKiBTd2VkaXNoIG1lc3NhZ2VzIChDaHJpc3RpYW4gUm9zZSkKKiBUdXJraXNoIG1lc3NhZ2VzIChOaWxn/G4gQmVsbWEgQnVn/G5lcikKKiBmZGlzazogYWRkZWQgbmV0YnNkIHR5cGUgKFN0ZXZlbiBKLiBIaWxsKQoqIG1vcmU6IGZpeCBmb3IgdW5zaWduZWQgY2hhciAoUnVzdHkgUnVzc2VsbCkKKiBtb3VudDogYWRkZWQgc3lzdiBtYWdpYyAoVGltIExhdW5jaGJ1cnkpCiogc2V0dGVybTogZml4ZWQgInNldHRlcm0gLWZvcmVncm91bmQgZGVmYXVsdCIKCnV0aWwtbGludXggMi4xMWwKCiogRGFuaXNoIG1lc3NhZ2VzIChDbGF1cyBIaW5kc2dhdWwpCiogYmFubmVyOiByZW1vdmVkIC0gaXQgaXMgaW4gYnNkZ2FtZXMKKiBmZGlzazogc2hvdyBwYXJ0aXRpb25zIHdpdGggZW1wdHkgdHlwZSBidXQgc29tZSBvdGhlciBub256ZXJvIGZpZWxkCiogbG9naW46IGNvcHkgdGhlIHN0YXRpYyBzdHJ1Y3QgdGhhdCBnZXRwd25hbSgpIHJldHVybnMgYmVmb3JlIGNhbGxpbmcKICBQQU0gcm91dGluZXMgdGhhdCBtaWdodCB0aGVtc2VsdmVzIHVzZSBnZXRwd25hbSgpLiBBYm9ydCBvbiBwcm9ibGVtcy4KICAoT2xhZiBLaXJjaCkKKiBtb3VudDogYWRkZWQgamZzIG1hZ2ljIChDaHJpc3RvcGggSGVsbHdpZykKKiByZW5pY2U6IHJlcG9ydCB0aGUgY29ycmVjdCBuZXcgcHJpb3JpdHkgYWZ0ZXIgYSBzZXRwcmlvcml0eSgpCiogdW1vdW50OiBhZGQgbGF6eSB1bm1vdW50IChDaHJpc3RvcGggSGVsbHdpZykKCnV0aWwtbGludXggMi4xMWsKCiAgVmFyaW91cyBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93cyB3ZXJlIHBvaW50ZWQgb3V0IGJ5IGF3YXl6enpAZGlnaWJlbC5vcmcuCiAgRml4ZXMgaW4gYWdldHR5LCBod2Nsb2NrLCBuYW1laSwgcmVhZHByb2ZpbGUsIHNpbXBsZWluaXQsIHZpcHcuCiAgKEFsc28gYWRkZWQgYSBmZXcgW2ZdY2xvc2UoKSBjYWxscyAtIGVudGlyZWx5IHN1cGVyZmx1b3VzbHkuKQoKKiBhZ2V0dHk6IGF2b2lkIHBvc3NpYmxlIGJ1ZmZlciBvdmVyZmxvdwoqIGNmZGlzazogcmVjb2duaXplIHhmcyAoTmF0aGFuIFNjb3R0KQoqIGN5dHVuZTogYWRkZWQgY2xvc2UoKQoqIGZkZm9ybWF0OiBhZGRlZCBjbG9zZSgpCiogZmRpc2s6IGFkZGVkIGZjbG9zZSgpCiogaHdjbG9jazogYXZvaWQgcG9zc2libGUgYnVmZmVyIG92ZXJmbG93CiogbWtmcy5taW5peDogYWRkZWQgZmNsb3NlKCkKKiBtb3VudDogcmVtb3ZlIHRoZSBhc3N1bXB0aW9uIHRoYXQgNjM1IGlzIHRoZSBkZWZhdWx0IG1vdW50IHBvcnQKKiBuYW1laTogYXZvaWQgcG9zc2libGUgYnVmZmVyIG92ZXJmbG93CiogcmRldjogYWRkZWQgY2xvc2VkaXIoKQoqIHJlYWRwcm9maWxlOiBhdm9pZCBwb3NzaWJsZSBidWZmZXIgb3ZlcmZsb3cKKiBzZmRpc2s6IGFkZGVkIGZjbG9zZSgpCiogc2ltcGxlaW5pdDogYXZvaWQgcG9zc2libGUgYnVmZmVyIG92ZXJmbG93Ciogc3dhcG9uOiBhZGRlZCBmY2xvc2UoKQoqIHVtb3VudDogdXNlIHRjcCB3aGVuIG1vdW50IHdhcyBkb25lIHVzaW5nIHRjcCAoSmFtZXMgRCBTdHJhbmRib2dlKQoqIHZpcHc6IGF2b2lkIHBvc3NpYmxlIGJ1ZmZlciBvdmVyZmxvdwoKdXRpbC1saW51eCAyLjExagoKKiBmZGlzazogZml4IGZvciBBSVggbGFiZWwgKE9sYWYgSGVyaW5nKQoqIGZkaXNrOiBmaXggZm9yIGNyZWF0aW5nIERPUyBsYWJlbCB3aGVuIEJTRCBsYWJlbCBpcyBwcmVzZW50CiogbW91bnQuODogYWRkZWQgcmVtYXJrIGFib3V0IGJsb2Nrc2l6ZSB0byBleHQyIHNiPSBtb3VudCBvcHRpb24gZGVzY3JpcHRpb24uCiogcGFydGl0aW9udHlwZTogbmV3LCBub3QgaW5zdGFsbGVkCgp1dGlsLWxpbnV4IDIuMTFpCgoqIHRlc3RpbmNsOiBkbyBub3QgcnVuIGNvbmZ0ZXN0IChCcmlhbiBNdXJwaHkpCiogYmxvY2tkZXY6IGNvcnJlY3RlZCBpb2N0bCBudW1iZXJzIG5vdyB0aGF0IEJMS0JTWkdFVCBpcyBpbiAyLjQuMTBwcmUzCiogY2FsOiBmaXhlZCBmb3IgSHVuZ2FyaWFuIGxvY2FsZQoqIGNhbDogZml4ZWQgZm9yIG11bHRpYnl0ZSBsb2NhbGVzIChQYWJsbyBTYXJhdHhhZ2EpCiogZmRpc2s6IGF2b2lkIHN1cGVyZmx1b3VzIHdhcm5pbmcgYWJvdXQgRE9TIHBhcnRpdGlvbnMKKiBsaW5lOiBuZXcsIHRvIHN1cHBvcnQgU0NPIHNoZWxsIHNjcmlwdHMgKENocmlzdG9waCBIZWxsd2lnKQoqIG1vdW50OiBhZGRlZCB2eGZzIG1hZ2ljCiogcGFzc3dkOiB0aW55IGZpeCBmb3IgQVJNIChLZW4gQ294KQoqIHJlcGxheTogcmVwbGF5IHR5cGVzY3JpcHQgd2l0aCB0aW1pbmdzIChKb2V5IEhlc3MpCiogc2NyaXB0OiBhZGQgLXQgZmxhZyBmb3IgdGltaW5nIChKb2V5IEhlc3MpCgp1dGlsLWxpbnV4IDIuMTFoCgoqIFR1cmtpc2ggbWVzc2FnZXMgKE5pbGf8biBCZWxtYSBCdWf8bmVyKQoqIERhbmlzaCBtZXNzYWdlcyAoQ2xhdXMgSGluZHNnYXVsKQoqIGJhbm5lcjogbWlub3IgZml4IChhd2F5enp6QGRpZ2liZWwub3JnKQoqIG1rZnMubWluaXg6IG1pbml4IHYyIGZpeAoqIG1vcmUuMTogaW1wcm92ZWQgKEVkd2FyZCBCZXR0cykKKiBtb3VudC44OiBjb3JyZWN0ZWQgZGVzY3JpcHRpb24gb2YgdGhlIG53ZnMgdW5pX3hsYXRlIG1vdW50IG9wdGlvbgoqIHZpcHc6IG1ha2UgdGVtcCBmaWxlcyBvZiBtb2RlIDA2MDAgKEJpbGwgTm90dGluZ2hhbSkKKiB3YWxsOiBhdm9pZCB3cml0aW5nIHRvIC9kZXYvOjAKCnV0aWwtbGludXggMi4xMWcKCiogTUNPTkZJRyAmIGNvbmZpZ3VyZTogZml4IGZvciBnY2MgMy4wCiAgTm90ZSB0aGF0IG5mc21vdW50X3hkci5jIG1heSBnaXZlIHdhcm5pbmdzIHdpdGggZ2NjIDMuMCwgZXNzZW50aWFsbHkKICBiZWNhdXNlIG9mIGRlZmluZXMgaW4gPHJwYy94ZHIuaD4gdGhhdCB1c2UgdGhpbmdzIGxpa2UgbnRvaGwoKmJ1ZisrKQogIHdoZXJlIG50b2hsKHgpIGlzIGEgbWFjcm8gd2l0aCBzZXZlcmFsIG9jY3VycmVuY2VzIG9mIHguCiogYmxvY2tkZXY6IHN1cHBvcnQgZm9yIHRoZSBnZXQvc2V0IGJsb2Nrc2l6ZSBpb2N0bHMKICBbbm90IHlldCBpbiB0aGUgMi40LjUga2VybmVsXQoqIGZkaXNrOiBhZGRlZCBMaW51eC9QQS1SSVNDIHR5cGUgKE1hdHQgVGFnZ2FydCkKKiBtb3VudDogbWlub3IgZml4IChBbmRyZXkgSi4gTWVsbmlrb2ZmKQoqIG1vdW50OiBhZGRlZCBzb21lIGV4dDMgc3R1ZmYgKEFuZHJldyBNb3J0b24pCiogbW91bnQ6IGFkZGVkIGhldXJpc3RpY3MgZm9yIHJlaXNlcmZzIChBbmRyZXcgTW9ydG9uKQoqIG1vdW50Ljg6IGFkZGVkIGV4dDMgYW5kIHJlaXNlcmZzIGRvY3MgKEFuZHJldyBNb3J0b24pCgp1dGlsLWxpbnV4IDIuMTFmCgoqIEN6ZWNoIG1lc3NhZ2VzIChKafjtIFBhdmxvdnNr/SkKKiBmZGlzazogZml4IGZvciAicmVvcmRlciIgZXhwZXJ0IGNvbW1hbmQKICAodXNlIG9mIHNmZGlzayBhZnRlcndhcmRzIGlzIHN0aWxsIHJlY29tbWVuZGVkKQoqIG1vdW50OiBtaW5vciBmaXhlcwoKdXRpbC1saW51eCAyLjExZQoKKiBEYW5pc2ggbWVzc2FnZXMgKENsYXVzIEhpbmRzZ2F1bCkKKiBCcmF6aWxpYW4gUG9ydHVndWVzZSBtZXNzYWdlcyAoUm9kcmlnbyBTdHVsemVyIExvcGVzKQoqIGFnZXR0eTogZ2l2ZSB0dHkgbW9kZSAwNjAwIGluc3RlYWQgb2YgMDYyMgoqIGNhbDogaW1wcm92ZWQgbWFucGFnZQoqIGNmZGlzazogYWRkIHVzZXItZnJpZW5kbGluZXNzIGluIGNhc2Ugb2YgZW1wdHkgZGlzayAoTWF0dGhldyBXaWxjb3gpCiogZG1lc2c6IGltcHJvdmVkIG1hbnBhZ2UKKiBmZGlzazogU3VwZXJIIGZpeCAoSVNISUtBV0EgTXV0c3VtaSkKKiBod2Nsb2NrOiBhY2NlcHQgYWxwaGEgb3B0aW9ucyBpbiBib3RoIHVwcGVyIGFuZCBsb3dlciBjYXNlCiAgKHNvIGFzIHRvIG1ha2UgdGhlIG1hbiBwYWdlIGNvcnJlY3QpCiogaHdjbG9jazogYWRkIG9wdGlvbiAtLW5vYWRqdGltZSAoSGVucmlxdWUgTSBIb2xzY2h1aCkKKiBsb2dpbjogY2hpbGQgbXVzdCBoYXZlIGNvbnRyb2xsaW5nIHR0eSAoTWljaGFsIE1vc2thbCkKKiBtb3JlOiBkb24ndCBzZWVrIHVuc2Vla2FibGUgaW5wdXQgKERhdmlkIFdoZWRvbikKKiBtb3VudDogdXBvbiByZXF1ZXN0IGJ5IFJpY2hhcmQgR29vY2g6IGlmIHRoZSBtb3VudCBwb2ludCBpcyBzcGVjaWZpZWQKICBhcyBzeW1saW5rLCBwdXQgc3ltbGluaywgbm90IGFjdHVhbCBtb3VudCBwb2ludCBpbiBtdGFiLgogIChUaGlzIGF2b2lkcyB0aGUgbG9uZyBhbmQgdWdseSBkZXZmcyBuYW1lcywgYnV0IG1heSBicmVhayB0aGluZ3MuCiAgUGxlYXNlIGNvbXBsYWluIGluIGNhc2Ugb2YgcHJvYmxlbXMuKQoqIG1vdW50OiB3aXRoIG1vdW50IC1hIC10IG5mczoKICBpZiB3ZSB1c2VkIGZhbGxiYWNrIHRvIG5mcyB2MywgZG9uJ3QgZG8gc28gZm9yIHN1YnNlcXVlbnQgbW91bnRzCiogbW91bnQ6IGFkZCBoZXVyaXN0aWNzIGZvciBleHQzIChBbmRyZXcgTW9ydG9uKQoqIG1vdW50OiBhZGRlZCBxdW90YSBpbmZvIHRvIG1vdW50LjgKKiBtb3VudDogYWxsb3cgY29tbWEtc2VwYXJhdGVkIHR5cGUgbGlzdHMsIGFsc28gaW4gZnN0YWIKKiByYXc6IHNtYWxsIGZpeCBmb3IgcHBjCgp1dGlsLWxpbnV4IDIuMTFkCgoqIGZkaXNrOiBmaXggZm9yIE9TRiAoV2lsbCBXb29kcykKKiBjaHNoOiBjb21waWxhdGlvbiBmaXggKFJvbmFsZCBXYWhsKQoKdXRpbC1saW51eCAyLjExYwoKKiBDemVjaCBtZXNzYWdlcyAoSmn47SBQYXZsb3Zza/0pCiogR2VybWFuIG1lc3NhZ2VzIChFbHJvbmQpCiogTWFrZWZpbGUvTUNPTkZJRyBpbXByb3ZlbWVudHMgKFBldGVyIEJyZWl0ZW5sb2huZXIpCiogZmRpc2s6IGFkZGVkIGEgZmV3IHBhcnRpdGlvbiB0eXBlcwoqIGZkaXNrOiBjb3JyZWN0IHBhcnRpdGlvbiBudW1iZXJpbmcgZm9yIHNnaSBwYXJ0aXRpb25zIChOYXRoYW4gU2NvdHQpCiogZmRpc2s6IG1ha2UgaXQgY29tcGlsZSBvbiBocHBhIGJ5IGFyYml0cmFyaWx5IHRyZWF0aW5nIGhwcGEgbGlrZSBwb3dlcnBjCiAgKE1hdHQgVGFnZ2FydCkKKiBmc2NrLm1pbml4OiBpbXByb3ZlZCBsb2NhbGlzYXRpb24gKEVscm9uZCkKKiBnZXRvcHQ6IHVwZGF0ZWQgdG8gdmVyc2lvbiAxLjEuMiAoRnJvZG8gTG9vaWphYXJkKQoqIGh3Y2xvY2s6IGZpeGVzIGZvciBJQTY0IChUaG9yc3RlbiBLdWt1aykKKiBod2Nsb2NrOiB1c2UgL2Rldi92Yy8xIHdoZW4gZGV2ZnMgaXMgdXNlZCAoVGhvbWFzIEtvZWxsZXIpCiogaHdjbG9jazogbW9yZSBkZXZmcyBzdXBwb3J0IChlLmcuIC9kZXYvbWlzYy9ydGMpCiogaXBjczogYWRkIHNwYWNlcyBpbiBvdXRwdXQgKERlV2l0dCBDbGludG9uKSwKICBjb3JyZWN0IHNvbWUgZXJyb3IgbWVzc2FnZXMgKEJvYmJ5IGRlIFZvcykKKiBsb2dpbjogZml4IFRJT0NOT1RUWSAoQW5kcmVhcyBIYXVtZXIsIEFkYW0gSi4gUmljaHRlcikKKiBsb2dpbjogYWRkIGJ0bXAgbG9nZ2luZyBvZiB1bnN1Y2Nlc3NmdWwgbG9naW4gYXR0ZW1wdHMgKEVyaWsgVHJvYW4pCiogbG9naW46IGF2b2lkIGEgU0lHSFVQIHJhY2Ugd2l0aCBQQU0gZW5hYmxlZCAoUGV0ZXIgJ0x1bmEnIFJ1bmVzdGlnKQoqIGxvZ2luOiBjb3B5IHRoZSBzdGF0aWMgcmVzdWx0IHJldHVybmVkIGJ5IGdldGhvc3RieW5hbWUgdG8gYXZvaWQKICBjb3JydXB0aW9uIGJ5IHBhbV9hdXRoZW50aWNhdGUgdmlhIHBhbV9sZGFwIChBbmRyZWFzIERhbW0pCiogbG9naW46IHJlbW92ZWQgdGhlIFJFREhBVF9JR05PUkVEX01BSUxTSVpFIGhhY2sKKiBsb2dpbjogdW5jb25kaXRpb25hbGx5IGRvIHZoYW5ndXAKKiBsb2dpbjogemVybyBQQU1fVVNFUiB3aGVuIG5vIHVzZXJuYW1lIHdhcyBnaXZlbiAoQXJrYWRpdXN6IE1pc2tpZXdpY3opCiogbG9vazogZGljdGlvbmFyeSBub3cgdW5kZXIgL3Vzci9zaGFyZSAoRXJpayBUcm9hbikKKiBtb3VudDogYWRkIHNhbml0aXplX2VudigpIChTb2xhciBEZXNpZ25lcikKKiBtb3VudDogYW5vdGhlciBoZXVyaXN0aWMgZm9yIHZmYXQgKE1pY2hhbCBTdmVjKQoqIG1vdW50OiB4ZnMgbWFnaWMgaGFzIG9ubHkgb25lIGVuZGlhbm5lc3MgKE5hdGhhbiBTY290dCkKKiBtb3VudDogcmV0dXJuIGZhaWx1cmUgd2hlbiB0Y3AgdXNlZCBhbmQgcG9ydG1hcCByZXR1cm5zIDAgKEguIEouIEx1KQoqIHJkZXY6IGFsbG93IHVubGltaXRlZCByZWN1cnNpb24gdG8gZmluZCB0aGUgbG9uZyBkZXZmcyBuYW1lcwogIEFsc28sIGFsbG93IG1ham9yLG1pbm9yIHBhaXIgdGhlIHNwZWNpZnkgZGV2aWNlIChyZXF1ZXN0IGJ5IFJ1c3NlbGwgQ29rZXIpCiogcmVhZHByb2ZpbGU6IGFycmF5IGJvdW5kIGNoZWNrIChBbmRyZXcgTW9ydG9uKQoqIHNjcmlwdDogdHJhbnNtaXQgd2luZG93IGNoYW5nZXMgdG8gY2hpbGQgKEpvZXkgSGVzcykKKiBzZmRpc2s6IGVuZGlhbiBmaXggZm9yIHBwYyAoR3JlZ29yeSBHZWlzZWxoYXJ0KQoqIHNmZGlzazogbmV3IGZlYXR1cmU6IHNpZ24gaXMgb2Zmc2V0IGZyb20gZGVmYXVsdCAoQnlyb24gU3Rhbm9zemVrKQoqIHNmZGlzazogYWRkIHNvbWUgZGVmYXVsdCBkZXZpY2VzIHRvIGxpc3QgKEx1Y2EgTW9udGVjY2hpYW5pKQoqIHNmZGlzazogbm8gcGFydGl0aW9uIHRhYmxlIG9uIGlkZSB0YXBlCiogc2h1dGRvd246IGNsb3NlIGZpbGVzLCB1bmJsb2NrIHNpZ25hbHMgKFJpY2hhcmQgR29vY2gpCiogc2ltcGxlaW5pdDogYmxvY2sgc2lnbmFscyBpbiBoYW5kbGVyczsgYWRkIG5vX3JlYm9vdCBvcHRpb24gKFJpY2hhcmQgR29vY2gpCiogc3dhcGRldjogZGVsZXRlZCwgaXQgd2FzIGxhc3QgdXNlZCB3aXRoIExpbnV4IDAuMTIuCiogdW1vdW50OiBtaXBzIGRvZXMgc3VwcG9ydCB1bW91bnQyIChNYWNpZWogVy4gUm96eWNraSkKKiB1bW91bnQ6IGFkZCBzYW5pdGl6ZV9lbnYoKSAoU29sYXIgRGVzaWduZXIpCiogdW1vdW50OiBmaXggZXhpdCBzdGF0dXMKKiB3YWxsOiBkbyBub3QgZm9yZ2V0IDgwdGggY2hhcmFjdGVyIChUaG9yc3RlbiBLdWt1aykKCnV0aWwtbGludXggMi4xMWI6CgoqIERhbmlzaCBtZXNzYWdlcyAoQ2xhdXMgSGluZHNnYXVsKQoqIHVtb3VudDogbWlwcyBkb2VzIG5vdCBzdXBwb3J0IHVtb3VudDIgKENocmlzdG9waCBNYXJ0aW4pCiogZmRpc2s6IHRpbnkgZml4CiogbW91bnQuODogYWRmcyBvcHRpb25zIGRvY3VtZW50ZWQsIHhmcyBjb3JyZWN0ZWQKCnV0aWwtbGludXggMi4xMWE6CgoqIHRzb3J0OiBkZWxldGVkIC0gaXQgaXMgcGFydCBvZiBHTlUgdGV4dHV0aWxzIDIuMAoqIG1vdW50OiBmaXggcm9vdGRldigpIChSaWNoYXJkIEtldHRsZXdlbGwpCiogbW91bnQ6IGZpeCBnaWQgb2YgbXRhYiBmaWxlCiogbW91bnQ6IHRyeSAvcHJvYy9maWxlc3lzdGVtcyBhZnRlciAvZXRjL2ZpbGVzeXN0ZW1zIGlmIHRoZSBsYXR0ZXIgZW5kcyBpbiAiKiIKKiBmZGlzazogYWRkZWQgYSBmZXcgc3lzdGVtIHR5cGVzCgp1dGlsLWxpbnV4IDIuMTE6CgoqIEp1bXAgdG8gMi4xMSB0byBub3RlIHRoYXQgbGliYy00LjUuMjYgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCwKICBhbmQgd2UgcmVxdWlyZSBsaWJjLTQuNi4yNyAoc2luY2Ugbm93IHNucHJpbnRmIGlzIHVzZWQpLgogIEFsc28sIGtiZHJhdGUgaGFzIG5vdyBiZWVuIHJlbW92ZWQuIEZpbmQgaXQgaW4ga2JkLTEuMDUuCiAgQWRkZWQgLURfRklMRV9PRkZTRVRfQklUUz02NCB0byBDRkxBR1MuCiogRGFuaXNoIG1lc3NhZ2VzIChDbGF1cyBIaW5kc2dhdWwpCiogZmRpc2s6IGF2b2lkIGxvb3AgaW4gY2FzZSBvZiBleHRlbmRlZCB3aXRob3V0IGxvZ2ljYWwKKiBpcGNzOiBjb3JyZWN0ZWQgaW50ZXJjaGFuZ2VkIHJlcG9ydCBvbiBtc2dfcnRpbWUvbXNnX3N0aW1lIChBcnVuIEt1bWFyIFUpCioga2lsbDogdXBkYXRlZCBtYW5wYWdlCiogbGFzdDogdmVyeSBtdWNoIGZhc3RlciB3aXRoIG1tYXAgKE1hcmVrIFplbGVtKQoqIGxvZ2luOiBBcHBsaWVkIFBBTSBwYXRjaCBieSBEYXZpZCBNYWNLZW56aWUgPGRqbUB3ZWIudXMudXUubmV0PgoqIGxvZ2luOiBkbyBhIHNldHNpZCBpbiB0aGUgY2hpbGQgKEVyaWsgVHJvYW4pCiogbW91bnQ6IG1ha2UgIm1vdW50IDE5Mi4xNjguMS44Oi8gL2EgLW8gYmciIHdvcmsgYWdhaW4gKEJqb2VybiBWb2lndCkKKiBtb3VudDogYWRkZWQgY29uc3RhbnQgTVNfTU9WRQoqIHJlYWRwcm9maWxlOiBhZGRlZCAtTSBvcHRpb24sIHVwZGF0ZWQgbWFucGFnZSAoQW5kcmV3IE1vcnRvbikKKiBzZXRzaWQ6IGZvcmsgd2hlbiBpdCB3b3VsZCBmYWlsIG90aGVyd2lzZSAoSm9obiBGcmVtbGluKQoqIHNpbXBsZWluaXQ6IHVwZGF0ZWQgKFJpY2hhcmQgR29vY2ggZXQgYWwuKQoqIHZpcHc6IGFsc28gb2ZmZXIgdG8gZWRpdCBzaGFkb3cgZmlsZSAoRXJpayBUcm9hbikKKiB4ZnMgZG9jcyAoTmF0aGFuIFNjb3R0KQoKdXRpbC1saW51eCAyLjEwczoKCiogRGFuaXNoIG1lc3NhZ2VzIChDbGF1cyBIaW5kc2dhdWwpCiogZml4ZXMgdG8gbWFrZSBnY2MgaGFwcHkgKEpvc2VwaCBTLiBNeWVycykKKiBmaXggZm9yIG1vcmUgb24gcGFyaXNjIChSaWNoYXJkIEhpcnN0KQoqIGNoYW5nZSByZGV2IHRvIHNlYXJjaCBzdWJkaXJlY3RvcmllcyBvZiAvZGV2IChQYXVsIENsZW1lbnRzKQoqIHVsIGZpeCAoTWFzYW8gS2F3YW11cmEpIC0gc2V0IGNvbHVtbnMgY29ycmVjdGx5CiogY2FsIGZpeCAoQnJlbmRhbiBLZWhvZSkgLSBkb24ndCBvdmVyZmxvdyB3ZWVrZGF5IGFycmF5IGluIEdhZWxpYwoqIGZkaXNrIGZpeCAobmlsZXNAc2N5bGQuY29tKSAtIGZsdXNoIHN0ZG91dAoqIGZkaXNrIGZpeCAtIGRvbid0IGZvcmdldCB0byB3cml0ZSBvdXQgZW1wdHkgbGFiZWwKKiBsb2dpbjogbWFrZSBkZWZhdWx0IHR0eSBtb2RlIDA2MDAKKiBzY3JpcHQ6IHJlZnVzZSB0byB3cml0ZSB0eXBlc2NyaXB0IGlmIHRoYXQgaXMgYSBzeW1saW5rCiogc2NyaXB0OiBhY2NlcHQgLVYgdG8gb3V0cHV0IHZlcnNpb24KKiB3aGVyZWlzOiBhbHNvIHNlYXJjaCAvdXNyL3NoYXJlL21hbi4KKiBod2Nsb2NrOiBpbXByb3ZlIGxvY2FsZSBoYW5kbGluZwoqIGh3Y2xvY2s6IGZpeCBmb3IgTmF1dGlsdXMgKE5lb2tsaXMgS3lyaWF6aXMpCiogaXNvc2l6ZTogbmV3Cgp1dGlsLWxpbnV4IDIuMTByOgoKKiBtb3VudDogc3VwcG9ydCBtb3VudCBieSB1dWlkIG9yIGxhYmVsIGZvciB4ZnMgKE5hdGhhbiBTY290dCkKKiBtb3VudDogYWRkZWQgcHJvYmUgZm9yIG1pbml4IG9uIGJpZ2VuZGlhbiBzeXN0ZW1zIChOYXRoYW4gU2NvdHQpCiogbW91bnQ6IGFkZGVkIHByb2JlcyBmb3IgY3JhbWZzLCBoZnMsIGhwZnMgYW5kIGFkZnMgKFNlcHAgV2lqbmFuZHMpCiogbW91bnQ6IGNoYW5nZSBzZXR1cDsgbGV0IHVtb3VudCByZW1vdmUgYXQgbW9zdCBvbmUgbGluZSBmcm9tIC9ldGMvbXRhYgoqIG1vdW50OiBpbXByb3ZlIG1hbiBwYWdlCiogbW9yZSwgY29sLCBjb2xjcnQsIGNvbHJtLCBjb2x1bW4sIHVsOiBubHMgaW1wcm92ZW1lbnRzIChNYXNhbyBLYXdhbXVyYSkKCnV0aWwtbGludXggMi4xMHE6CgoqIG1vdW50OiBhY2NlcHQgbm9ubnVtZXJpYyB1aWQ9IGFuZCBnaWQ9IG9wdGlvbnMKKiB3cml0ZSBhbmQgd2FsbDogc2VjdXJpdHkgaW1wcm92ZW1lbnQKKiBmaXhlZCBmZGZvcm1hdCBmbGF3IChXZXJuZXIgQWxtZXNiZXJnZXIpCiogdXNlIHJpZ2h0IG1vdW50cG9ydCB1cG9uIHVtb3VudCAoR2xlbm4gTGluZ2xlKQoqIHNpbXBsZWluaXQgLyBuZWVkIC8gaW5pdGN0bCBzdHVmZiAoUmljaGFyZCBHb29jaCkKKiBQb3J0dWd1ZXNlIG1lc3NhZ2VzIChSb2RyaWdvIFN0dWx6ZXIgTG9wZXMgZXQgYWwuKQoKdXRpbC1saW51eCAyLjEwcDoKCiogbW91bnQ6IGRvbid0IHNldCB1cCBhIGxvb3AgZmlsZSB3aXRoIC1vIGxvb3AscmVtb3VudCAoTWFyYyBNdXR6KQoqIGZkaXNrOiBjaGFuZ2VzIGZvciBzZWN0b3JzaXplIGRpZmZlcmVudCBmcm9tIDUxMgoqIG1vcmU6IHN0YW5kb3V0IGZpeCAoUGF1bCBWb2p0YSkKKiBtb3JlOiBpbXByb3ZlIHVzYWdlIG1lc3NhZ2UgKExpbmNvbG4gTXllcnMpCiogbG9nZ2VyOiBBZGRlZCAtZCBvcHRpb24gdG8gdXNlIGRhdGFncmFtcyAoR2Vyd2luIFBmYWIpCiogY2FsOiBBZGRlZCAtMyBvcHRpb24gdG8gYWxzbyBwcmludCBwcmV2L25leHQgbW9udGggKE1pY2hhZWwgQ2hhcmxlcyBQcnV6bmljaykKKiBGcmVuY2ggbWVzc2FnZXMgKENocmlzdG9waGUgTWVybGV0KQoqIEphcGFuZXNlIG1lc3NhZ2VzIChEYWlzdWtlIFlhbWFzaGl0YSkKCnV0aWwtbGludXggMi4xMG86CgoqIGZkZm9ybWF0OiBmaXhlZCB0byB3b3JrIHdpdGgga2VybmVsIDIuNC4wdGVzdDYgKE1hcmVrIFdvanRvd2ljeikKKiBsb3NldHVwOiBhbHNvIHJldHVybiBzdGF0dXMgd2hlbiBvbmx5IHNob3dpbmcgbG9vcCBkZXZpY2Ugc3RhdHVzIChld3QpCiogbW91bnQ6IGRvIG5vdCByZXRyeSBybyBpZiBtb3VudCB3YXMgcm87IGltcHJvdmUgZXJyb3IgbWVzc2FnZQoqIGxvZ2luOiBub3QgaW5zdGFsbGVkIHN1aWQKKiBnZXRvcHQ6IGJ5IGRlZmF1bHQgaW5zdGFsbCBhdXggZmlsZXMgaW4gL3Vzci9zaGFyZS9taXNjCgp1dGlsLWxpbnV4IDIuMTBuOgoKKiBhZGRlZCBibG9ja2Rldi44CiogY2hhbmdlIHRvIGVsdnR1bmUgKGFuZHJlYSkKKiBmaXhlZCBvdmVycnVuIGluIGFnZXR0eSAodmlpQHBlbmd1aW5wb3dlcmVkLmNvbSkKKiBzaHV0ZG93bjogcHJlZmVyIHVtb3VudGluZyBieSBtb3VudCBwb2ludCAocmdvb2NoKQoqIGZkaXNrOiBhZGRlZCBwbGFuOQoqIGZkaXNrOiByZW1vdmUgZW1wdHkgbGlua3MgaW4gY2hhaW4gb2YgZXh0ZW5kZWQgcGFydGl0aW9ucwoqIG1vdW50OiBkZWZpbmUgQUxXQVlTX1NUQVQKKiBtb3VudDogYWRkIHJlcGxhY2UsIGFmdGVyLCBiZWZvcmUsIG92ZXIsIGJpbmQKKiB1bW91bnQ6IGFsc28gZnJlZSBsb29wIGRldmljZSB3aGVuIG5vdCB3cml0aW5nIG10YWIKKiBsb21vdW50OiB0cnkgYm90aCAvZGV2L2xvb3BOIGFuZCAvZGV2L2xvb3AvTgoqIGh3Y2xvY2s6IGhhbmRsZSBib3RoIC9kZXYvcnRjIGFuZCAvZGV2L2VmaXJ0YyAoQmlsbCBOb3R0aW5naGFtKQoqIHNjcmlwdDogYWRkZWQgLWYgKGZsdXNoKSBvcHRpb24gKEl2YW4gU2NocmV0ZXIpCiogc2NyaXB0OiBhZGRlZCAtcSAocXVpZXQpIG9wdGlvbiAoUGVyIEFuZHJlYXMgQnVlcikKKiBnZXRvcHQ6IHVwZGF0ZWQgdG8gdmVyc2lvbiAxLjEuMCAoRnJvZG8gTG9vaWphYXJkKQoqIEN6ZWNoIG1lc3NhZ2VzIChKaXJpIFBhdmxvdnNreSkKCnV0aWwtbGludXggMi4xMG06CgoqIGNoZm4gZml4IHdoZW4gUEFNIGlzIHVzZWQgKE1hcnRpbi1ELiBMYWNhc3NlKQoqIGRvIG5vdCB1c2UgTENfTlVNRVJJQyBwYXJ0IG9mIGxvY2FsZSBpbiBod2Nsb2NrIHdoZW4gd3JpdGluZyAvZXRjL2FkanRpbWUKKiBtb3VudCBzdGF0dXMgcmV0dXJuIGZyb20gc21iIG9yIG5jcCBmaXggKE1hcmsgUGVsb3F1aW4pCiogbW91bnQgbmV3IG9wdGlvbiAtbDogYWxzbyBwcmludCBsYWJlbCB3aGVuIGxpc3RpbmcgbW91bnRzCiogbW91bnQgYWRkIGhldXJpc3RpYyBmb3IgeGZzIChNYXJ0aW4gSy4gUGV0ZXJzZW4pCiogbW91bnQgVVVJRCBhbmQgbGFiZWwgY2FjaGUgKEVyaWsgVHJvYW4pCiogbW91bnQgaW1wcm92ZSBjaGVjayBmb3IgYGFscmVhZHkgbW91bnRlZCcgaW4gY2FzZSBvZiBsYWJlbCBvciB1dWlkCiogZmRpc2sgcGFydGl0aW9uIG5hbWVzIG1vcmUgZGV2ZnMtZnJpZW5kbHkKKiBmZGlzayBic2RsYWJlbCBsYXJnZSBkaXNrIHN1cHBvcnQKKiBzZXR0ZXJtLjE6IG9wdGlvbnMgZG9jdW1lbnRlZCAoQ29saW4gV2F0c29uKQoqIHJlbmFtZSBjb3JyZWN0aW9uCiogR2VybWFuLCBTcGFuaXNoLCBGcmVuY2gsIEl0YWxpYW4sIFBvcnR1Z3Vlc2UgbWVzc2FnZXMKICAoUm9nZXIgTHVldGhpLCBCZXRoIFBvd2VsbCwgQWx2YXJvIEFudHVuZXMpCgp1dGlsLWxpbnV4IDIuMTBsOgoKKiBNZXJnZWQgbG9zZXR1cC5jIGFuZCBsb21vdW50LmMKKiBBTlNJZmllZCBldmVyeXRoaW5nCgp1dGlsLWxpbnV4IDIuMTBrOgoKKiBORlMgdmVyc2lvbiA0IG1vdW50IHN1cHBvcnQgKFRyb25kIE15a2xlYnVzdCkKKiBod2Nsb2NrIGZpeCAoU3RlZmFuIFJpbmcpCiogQWRkZWQgLXAgb3B0aW9uIHRvIGNvbCwgYXMgcmVxdWlyZWQgYnkgU1VTIChKb3NlcGggUy4gTXllcnMpCgp1dGlsLWxpbnV4IDIuMTBqOgoKKiBmZGlzayBmaXhlcyAoTWljaGFsIEphZWdlcm1hbm4pCgp1dGlsLWxpbnV4IDIuMTBpOgoKKiBuZXcgZGlyZWN0b3J5IHBhcnR4ICh3aXRoIGNvZGUgdG8gcGxheSB3aXRoLCBub3QgdG8gdXNlKQoqIG1pbm9yIGZkaXNrIGNoYW5nZXMKCnV0aWwtbGludXggMi4xMGg6CgoqIEFkZGVkIHBpdm90X3Jvb3QgKFdlcm5lciBBbG1lc2JlcmdlcikKKiBBZGRlZCBlbHZ0dW5lIChBbmRyZWEgQXJjYW5nZWxpKQoqIEFkZGVkIG5lZWQgYW5kIGV4dGVuZGVkIHNpbXBsZWluaXQgYW5kIHNodXRkb3duIChSaWNoYXJkIEdvb2NoKQoqIFJlbW92ZWQgYWxsICNpbmNsdWRlIDxsaW51eC9mcy5oPgoqIGVycm5vIGZpeGVzIChKb3NlcGggUy4gTXllcnMpCiogSUEtNjQgZml4ZXMgKE1pY2hhZWwgSy4gSm9obnNvbikKKiBmZGlzayBmaXhlcyBmb3IgT1NGLzEgb24gQWxwaGEgKERhdmlkIEh1Z2dpbnMtRGFpbmVzKQoqIGZkaXNrIHNlY3RvcnNpemUgZml4IChHcmVnIEhvc2xlcikKKiBtb3VudCBzcGVlZD0gb3B0aW9uIHRvIGVuYWJsZSBtb3VudGluZyBiYWQgQ0RST01zIChNYXJjbyBkJ0l0cmkpCiogaXBjcm0gZGVsZXRlcyBzZXZlcmFsIHRoaW5ncyBhdCBvbmNlIChGcmFuayBaYWdvKQoKdXRpbC1saW51eCAyLjEwZzoKCiogZmRpc2sgY2FuIG5vdyBzb3J0IHBhcnRpdGlvbnMgaW50byBvcmRlciBbdW50ZXN0ZWQsIGJld2FyZSFdCiogVXBkYXRlIG9mIG1rc3dhcCBmb3Igc3BhcmM2NCAoamopCiogVXBkYXRlIG9mIHJhdyAoU3RlcGhlbiBUd2VlZGllKToKICBDb250cm9sIGZpbGUgd2FzIC9kZXYvcmF3LCBub3cgL2Rldi9yYXdjdGwKICBBY2Nlc3MgZmlsZXMgd2VyZSAvZGV2L3JhdyosIG5vdyAvZGV2L3Jhdy9yYXcqCiogQ3plY2ggbWVzc2FnZXMgKEppcmkgUGF2bG92c2t5KQoqIEdlcm1hbiBtZXNzYWdlcyAoRGFuaWVsIEVnZ2VyKQoqIGxvc2V0dXAgbG9ja3MgbWVtb3J5IChGcmFuayB2IFdhdmVyZW4pCgp1dGlsLWxpbnV4IDIuMTBmOgoKKiBTZWN1cml0eSBmaXggZm9yIG1vdW50IChva2lyKQoqIEF2b2lkIGluZmluaXRlIGxvb3AgaW4gbmFtZWkgKEJyZXR0IFd1dGgpCiogYWRkZWQgY2xvY2stcHBjLmMgKGZyb20gTWF0c3V1cmEgVGFrYW5vcmkpLCBub3QgbWVyZ2VkIHlldAoqIGRlbGV0ZWQgY2xvY2tCIHN1YmRpcmVjdG9yeQoqIHJlY29nbml6ZSBta2Rvc2ZzIHN0cmluZyAoTWljaGFsIFN2ZWMpCgp1dGlsLWxpbnV4IDIuMTBlOgoKKiBOZXc6IHJlbmFtZQoqIEFkZGVkIG9wdGlvbiB0byBta3N3YXAgc28gdGhhdCB1c2VyIGNhbiBvdmVycmlkZSBwYWdlc2l6ZQoqIGZkaXNrIC1sIG5vdyByZWFkcyAvcHJvYy9wYXJ0aXRpb25zIHdoZW4gbm8gZGV2aWNlIHdhcyBnaXZlbgoqIEZpeGVkIGZkaXNrLjggKEphbWVzIE1hbm5pbmcpCiogQWRkZWQgZGV2cHRzIGluZm8gdG8gbW91bnQuOCAoRWxyb25kKQoqIE5ld2xpbmUgZml4IGZvciBsb2dnZXIgb3V0cHV0IHRvIHN0ZG91dCAoSGVucmkgU3BlbmNlcikKCnV0aWwtbGludXggMi4xMGQ6CgoqIERvIG5vdCB0cnkgdG8gbW91bnQgc29tZXRoaW5nIGFzIHVkZiB3aXRob3V0IGdvb2QgcmVhc29uCiogRG8gbm90IGxvb3AgaW4gdW1vdW50IGlmIHRoZXJlIGlzIGEgc3RhbGUgbG9jayBmaWxlCiogQWxsb3cgZmRpc2sgdHdpY2UgYXMgbWFueSBjeWxpbmRlcnMKKiBGaXhlZCBub24tY2FzZWZvbGRpbmcgc2VhcmNoIGluIGxvb2sgKE1hcmt1cyBEZW1sZWl0bmVyKQoKdXRpbC1saW51eCAyLjEwYzoKCiogVmFyaW91cyBjb21waWxhdGlvbiBmaXhlcwoKdXRpbC1saW51eCAyLjEwYjoKCiogRml4ZWQgc21ibW91bnQgcHJvYmxlbSAoQW5kcmV3IFRyaWRnZWxsKQoqIEZpeGVkIGRkYXRlIHByb2JsZW0gd2l0aCB0aGUgZGF5IGFmdGVyIFN0LiBUaWIncyBEYXkgKEJyYWQpCiogR2VybWFuIG1lc3NhZ2VzIChFbHJvbmQpCiogTWFkZSBraWxsIGEgYml0IG1vcmUgc3RhbmRhcmQgY29tcGxpYW50CiogTWFkZSBzb21lIG1vcmUgcHJvZ3JhbXMgb3V0cHV0IGEgdmVyc2lvbgoKdXRpbC1saW51eCAyLjEwYToKCiogSmFwYW5lc2UgbWVzc2FnZXMgKERhaXN1a2UgWWFtYXNoaXRhKQoqIEZyZW5jaCBtZXNzYWdlcyBhbmQgc2V2ZXJhbCBEZWJpYW4gZml4ZXMgKFZpbmNlbnQgUmVuYXJkaWFzKQoqIEZpeGVkIGluZmluaXRlIGxvb3AgaW4gbWtmcy5taW5peAoKdXRpbC1saW51eCAyLjEwOgoKKiBBZGRlZCBCU0QgZGlza2xhYmVsIGNvZGUgdG8gcmVzY3VlcHQKKiBBZGRlZCBibG9ja2RldiB1dGlsaXR5CiogRml4IGxvc2V0dXAgcmV0dXJuIGNvZGUKKiBGaXggdW5pdCBkaXNwbGF5IGluIGNmZGlzawoqIERvIG5vdCByZWRlZmluZSBfUEFUSF9NQUlMRElSIChzbyB0aGF0IHJlY2VudCBzeXN0ZW1zIGNhbiBoYXZlIC92YXIvbWFpbCkKKiBBZGRlZCAtLWxvY2FsdGltZSBvcHRpb24gdG8gaHdjbG9jazsKICBhZGRlZCB0aGlyZCBsaW5lIChMT0NBTC9VVEMpIHRvIC9ldGMvYWRqdGltZS4KKiBBZGQgLUggb3B0aW9uIHRvIGFnZXR0eSAoRGF2aWQgSG9sbGFuZCkKCnV0aWwtbGludXggMi45ejoKCiogSmFwYW5lc2UgbWVzc2FnZXMgKERhaXN1a2UgWWFtYXNoaXRhKQoqIEN6ZWNoIG1lc3NhZ2VzIChKaXJpIFBhdmxvdnNreSkKKiBBZGRlZCBzb21lIHVkZiBzdHVmZiB0byBtb3VudC44CiogQWRkZWQgaW9jdGwgZm9yIGZkaXNrIG9uIGJzZGxhYmVscwoKdXRpbC1saW51eCAyLjl5OgoKKiBXaWRlIGNoYXJhY3RlciBzdXBwb3J0IChCcnVubyBIYWlibGUpCiogR2VybWFuIG1lc3NhZ2VzIGFuZCBzb21lIHNtYWxsIGZpeGVzIChFbHJvbmQpCiogU21hbGwgZml4IHRvIG93bmVyIG1vdW50IG9wdGlvbiAoRXJpayBUcm9hbikKKiBEb24ndCBzbGVlcCBzbyBsb25nIGluIGNsb2NrL2tkLmMgKENocmlzdGlhbiBULiBTdGVpZ2llcykKCnV0aWwtbGludXggMi45eDoKCiogR2VybWFuIG1lc3NhZ2VzIGFuZCBhIGkxOG4gZml4IChFbHJvbmQpCiogbW91bnQgb3B0aW9uOiBhbGxvdyB0aGUgb3duZXIgdG8gbW91bnQgYSBkZXZpY2UgKFJlZEhhdCkKKiB1Z2x5OiBsZXQgbG9naW4gb3BlbiBjb25zb2xlIHdpdGggT19OT05CTE9DSyAoTWFjaWVqIFcuIFJvenlja2kpCiogVUdMWTogbGV0IGxvZ2luIGlnbm9yZSBtYWlsIHRoYXQgaXMgcHJlY2lzZWx5IDUyMyBieXRlcyBsb25nIChSZWRIYXQpCiogYWRkZWQgbWtmcy5iZnMsIG1rZnMuYmZzLjgKKiBtb3VudCBub3cgcmVjb2duaXplcyBxbng0IGFuZCBiZnMgcGFydGl0aW9ucwoqIHJlc2N1ZXB0IG5vdyByZWNvZ25pemVzIFVuaXh3YXJlIHBhcnRpdGlvbnMKKiBod2Nsb2NrIGZpeCBvbiBtNjhrIChSb21hbiBIb2RlaykKKiBzZXZlcmFsIG1pbm9yIHRoaW5ncwoKdXRpbC1saW51eCAyLjl3OgoKKiBVcGRhdGVkIG1vdW50LjggKFlhbm4gRHJvbmVhdWQpCiogSW1wcm92ZWQgbWFrZWZpbGVzCiogRml4ZWQgZmxhdyBpbiBmZGlzawoKdXRpbC1saW51eCAyLjl2OgoKKiBjZmRpc2sgbm8gbG9uZ2VyIGJlbGlldmVzIHRoZSBrZXJuZWwncyBIREdFVEdFTwogIChhbmQgbWF5IGJlIGFibGUgdG8gcGFydGl0aW9uIGEgMiBUQiBkaXNrKQoKdXRpbC1saW51eCAyLjl1OgoKKiBDemVjaCBtb3JlLmhlbHAgYW5kIG1lc3NhZ2VzIChKafjtIFBhdmxvdnNr/SkKKiBKYXBhbmVzZSBtZXNzYWdlcyAoRGFpc3VrZSBZYW1hc2hpdGEpCiogZmRpc2sgZml4IChLbGF1cyBHLiBXYWduZXIpCiogbW91bnQgZml4IChIaXJva2F6dSBUYWthaGFzaGkpCiogYWdldHR5OiBlbmFibGUgaGFyZHdhcmUgZmxvdyBjb250cm9sIChUaG9yc3RlbiBLcmFuemtvd3NraSkKKiBtaW5vciBjZmRpc2sgaW1wcm92ZW1lbnRzCiogZmRpc2sgbm8gbG9uZ2VyIGFjY2VwdHMgYSBkZWZhdWx0IGRldmljZQoqIE1ha2VmaWxlIGZpeAoKdXRpbC1saW51eCAyLjl0OgoKKiBuYXRpb25hbCBsYW5ndWFnZSBzdXBwb3J0IGZvciBod2Nsb2NrCiogSmFwYW5lc2UgbWVzc2FnZXMgKGJvdGggYnkgRGFpc3VrZSBZYW1hc2hpdGEpCiogR2VybWFuIG1lc3NhZ2VzIGFuZCBzb21lIG1pc2MgaTE4biBmaXhlcyAoRWxyb25kKQoqIEN6ZWNoIG1lc3NhZ2VzIChKafjtIFBhdmxvdnNr/SkKKiB3YWxsIGZpeGVkIGZvciAvZGV2L3B0cy94eCB0dHlzCiogbWFrZSBsYXN0IGFuZCB3YWxsIHVzZSBnZXR1dGVudCgpIChTYXNjaGEgU2NodW1hbm4pCiAgW01heWJlIHRoaXMgaXMgYmFkOiBsYXN0IHJlYWRpbmcgYWxsIG9mIHd0bXAgbWF5IGJlIHRvbyBzbG93LgogICBSZXZlcnQgaW4gY2FzZSBwZW9wbGUgY29tcGxhaW4uXQoqIGRvY3VtZW50ZWQgVVVJRD0gYW5kIExBQkVMPSBpbiBmc3RhYi41CiogYWRkZWQgc29tZSBwYXJ0aXRpb24gdHlwZXMKKiBzd2Fwb246IHdhcm4gb25seSBpZiB2ZXJib3NlCgp1dGlsLWxpbnV4IDIuOXM6CgoqIHR1bmVscCBwYXRjaCAoQW5kcmVhIEFyY2FuZ2VsaSkKKiBmaXhlZCBtb3VudCByYWNlIChISkx1KQoqIEdlcm1hbiBtZXNzYWdlcyAoRWxyb25kKQoKdXRpbC1saW51eCAyLjlbcHFyXToKCiogZXJybm8tPmVycnN2IHBhdGNoIChBcm5hbGRvIENhcnZhbGhvIGRlIE1lbG8pCiogaHdjbG9jayBwYXRjaCBmb3IgdGhlIEF3YXJkIDQuNTBnIEJJT1MgIjIwOTQiIGJ1Zy4gKERhdmUgQ29mZmluKQoqIGZkaXNrIHBhdGNoIHRvIGNvcnJlY3QgZGVsZXRpb24gb2YgbGFzdCBsb2dpY2FsIHBhcnRpdGlvbgoKdXRpbC1saW51eCAyLjlvOgoKKiBmaXggdG8gbG9naW4gYnkgQW1icm9zZSBDLiBMaQoqIGltcHJvdmVtZW50IHRvIG1jb29raWUgaW5zcGlyZWQgYnkgYSBwYXRjaCBmcm9tIFJpayBGYWl0aAoqIG1vcmUgaTE4biBieSBBcm5hbGRvIENhcnZhbGhvIGRlIE1lbG87IHB0X0JSIGxvY2FsZQoKdXRpbC1saW51eCAyLjluOgoKKiBBZGRlZCAtdSBvcHRpb24gdG8gbG9nZ2VyICh3cml0ZSB0byB1c2VyLXNwZWNpZmllZCBzb2NrZXQ7IE1hcnRpbiBTY2h1bHR6ZSkKKiBBZGRlZCBtb3VudC5zbWIgc2NyaXB0IGNvbnRyaWJ1dGVkIGJ5IEdyZWcgR2FscGVyaW4KKiBTb21lIG1vcmUgbmF0aW9uYWwgbGFuZ3VhZ2Ugc3VwcG9ydAoqIG1rZnMubWluaXggYXJndW1lbnQgcGFyc2luZyBmaXhlZAoqIHdyaXRlIGZpeGVkIGZvciAvZGV2L3B0cy94eCB0dHlzCiogY29uZmlndXJlIGFkYXB0ZWQgZm9yIHRoZSBjYXNlIG9mIDxzY3NpL3Njc2kuaD4gdGhhdCBuZWVkcyB1X2NoYXIuCgp1dGlsLWxpbnV4IDIuOW06CgoqIEFkZGVkIG5hdGlvbmFsIGxhbmd1YWdlIHN1cHBvcnQgKG1pc2lla0BwbGQuT1JHLlBMKQoqIG1pbm9yIGltcHJvdmVtZW50cyBpbiBtb3VudCwgZmRpc2ssIGNmZGlzaywgYWdldHR5LCBtb3JlCgp1dGlsLWxpbnV4IDIuOWw6CgoqIEFkZGVkIC9kZXYvcG9ydCB1c2UgdG8gaHdjbG9jayBhZ2FpbiAtIGl0IG1heSBiZSBuZWNlc3NhcnkgZm9yIEplbnNlbi4KCnV0aWwtbGludXggMi45azoKCiogbWFqb3IgcmVzaHVmZmxlIG9mIGh3Y2xvY2sgc3R1ZmY7IGFkZGVkIHNwYXJjIGFuZCBhbHBoYSBjb2RlCiogZmRpc2sgZml4CiogdGlueSBzaHV0ZG93biBmaXgKCnV0aWwtbGludXggMi45ajoKCiogYWRkZWQgY29uZmlndXJlCiogbWVyZ2VkIHRocmVlIGxpc3RzIG9mIHBhcnRpdGlvbiB0eXBlcyBpbiAqZmRpc2sKKiBtdWx0aSBwYWdlIGRpc3BsYXkgaW4gY2ZkaXNrCiogdGVzdCBmb3IgZ2V0bG9naW4oKSA9PSAiIjsKKiBzdGFydCBmaXh1cCBod2Nsb2NrCgp1dGlsLWxpbnV4IDIuOWk6CgoqIGZpeGVkIDIuOWggdHlwbyBpbiBtb3JlCiogYWRkZWQgLW06IGBNb25kYXkgaXMgMXN0IGRheScgb3B0aW9uIHRvIGNhbCAoSmVhbi1GcmFuY29pcyBCaWdub2xsZXMpCiogY2hhbmdlZCBQQU0gc3R1ZmYgaW4gbG9naW4uYyAoKy0gbWpvaG5zb24pCiogYWRkZWQgd2FybmluZyB0byBjZmRpc2sgaW4gY2FzZSBvZiBtdWx0aXBsZSBib290YWJsZSBwYXJ0aXRpb25zCiogYWRkZWQgMjA0OC1ieXRlIHNlY3RvciBzdXBwb3J0IGluIGZkaXNrIChPbGl2ZXIgU2NoYWVydGVsKQoKdXRpbC1saW51eCAyLjloOgoKKiBtb3VudCByZWNvZ25pemVzICJ1aWQ9dXNlcnVpZCIgYW5kICJnaWQ9dXNlcmdpZCIgaW4gL2V0Yy9mc3RhYi4KKiBkb2N1bWVudGVkIHRoZSBmYWN0IHRoYXQgIm1vdW50IC10IHNtYiIgd2lsbCBjYWxsIC9zYmluL21vdW50LnNtYi4KKiBtb3VudCBnaXZlcyBjbGVhciBlcnJvciBtZXNzYWdlIHdoZW4gZnN0YWIgZG9lcyBub3QgZW5kIGluIG5ld2xpbmUuCiogc3dhcG9uIGNoZWNrcyBtb2RlIG9mIGZpbGUKKiBjZmRpc2sgZ290IGEgbW9yZSBzcGVjaWZpYyBleGl0IHN0YXR1cyAoRW5yaXF1ZSBaYW5hcmRpKQoKdXRpbC1saW51eCAyLjlnOgoKKiBtb3VudCB1cGRhdGVzIChsb2NraW5nLCAidXNlcnMiIGtleXdvcmQsICIvZXRjL2ZpbGVzeXN0ZW1zIiwKICAicHJvdG8iIGFuZCAidmVycyIgb3B0aW9ucyBpbiBuZnNtb3VudCwgLi4uKQoKdXRpbC1saW51eCAyLjlmOgoKKiBtYWRlIHVsIGhhbmRsZSBsaW5lcyBvZiBhcmJpdHJhcnkgbGVuZ3RoIChTY290dCBNYXh3ZWxsKQoqIGtpbGxlZCBzb21lIEMvSC9TIG5vbnNlbnNlIGluIGZkaXNrCiogZml4ZXMgZm9yIGFyY2hzIHdpdGggdW5zaWduZWQgY2hhciB0eXBlIChBbWJyb3NlIExpKQoqIGZkaXNrIGZpeGVzIGZvciBwb3dlciBwYyAoVG9tIFJpbmkpCiogYWRkZWQgYSBkZWZpbmUgZm9yIE5DVVJTRVNfQ09OU1QKKiBmaXhlcyBmb3IgbGlzdCBvZiBzaWduYWxzIGluIGtpbGwuYwoqIGZpeGVzIGZvciB1c2VyIG5hbWUgbGVuZ3RoIGluIGxhc3QuYwoKdXRpbC1saW51eCAyLjllOgoKKiBhZGRlZCBhIGZvcmdvdHRlbiBkZWNsYXJhdGlvbiB0byBsb2dpbi5jIChDaHJpc3RpYW4gT3lhcnp1bikKCnV0aWwtbGludXggMi45ZDoKCiogZml4ZWQgc2VnZmF1bHQgaW4gdW1vdW50IGNhdXNlZCBieSBXaWxjb3gnIHBhdGNoIChTdGVmZmVuIFphaG4pCiogYWRkZWQgbG56IHN0dWZmIHRvIGZkaXNrCgp1dGlsLWxpbnV4IDIuOWM6CgoqIHJlZml4ZWQgUEFNIHN0dWZmIGluIGxvZ2luLmMgdGhhdCB3YXMgYnJva2VuIGluIDIuOC4KCnV0aWwtbGludXggMi45YjoKCiogc3BsaXQgUkVBRE1FIGludG8gSU5TVEFMTCBhbmQgSElTVE9SWQoqIGFkZGVkIGEgc2VudGVuY2UgdG8gc3dhcG9uLjgKKiBiZWhhdmlvdXIgb2Ygd3JpdGUgb24gbm9uLUFTQ0lJIGZpeGVkCiogaHdjbG9jayBhZGFwdGVkIHRvIHN1cnZpdmUgYSBmYWlsaW5nIG1rdGltZSgpCgp1dGlsLWxpbnV4IDIuOWE6CgoqIGFkZGVkIGFuIGluY2x1ZGUgdG8gbGliL215X3JlYm9vdC5jIHNvIHRoYXQgX19HTElCQ19fIGlzIGRlZmluZWQKKiBhZGRlZCBzZXRsb2NhbGUoKSB0byBsb2dpbi11dGlscy9jaGZuLmMKKiBkbyBub3QgcmVjb21wdXRlIE1BSUwgaW4gbG9naW4tdXRpbHMvbG9naW4uYwoKdXRpbC1saW51eCAyLjk6CgpISUdITElHSFRTIGZvciB2ZXJzaW9uIDIuOToKCjEpIFJlbW92ZWQgcHJvZ3JhbXM6CiAgIC0gc3RyaW5ncy4gVGhlcmUgaXMgYSB2ZXJzaW9uIGluIGJpbnV0aWxzLgogICAtIGZyYWcuIChNb3ZlZCB0byBoaXN0b3JpYyBpbiAyLjQsIGNyZXB0IGJhY2sgaW4gMi41LiBHb25lIGFnYWluLikKMWEpIE5vdCB5ZXQgcmVtb3ZlZCBwcm9ncmFtOgogICAtIHNldGZkcHJtLiBJdCBhbHNvIGlzIGluIGZkdXRpbHMtNS4yICh3aXRoIGFuIGV4Y2VwdGlvbmFsbHkKICAgICB1Z2x5IG1hbiBwYWdlKS4KMWIpIFJlbW92ZWQgZGlyZWN0b3J5OgogICAtIGJzZC4gKFRoZSByb3V0aW5lIGdldG9wdCgpIGlzIGluIGxpYmMuIGVycigpIG1vdmVkIHRvIGxpYi4pCjIpIEltcHJvdmVtZW50czoKICAgLSBkZGF0ZSBoYXMgYmVlbiBmaXhlZCB0byBjb3VudCBkb3duIHRvIHRoZSBuZXcsIHJpZ2h0IFgtZGF5CiAgIC0gbG9vayBpcyBub3cgd2lsbGluZyB0byBzZWFyY2ggbm9uLUVuZ2xpc2ggZGljdGlvbmFyaWVzCiAgICAgKGkuZS4sIHVzZXMgbG9jYWxlKQogICAtIGNhbCBub3cga25vd3MgdGhhdCBEdXRjaCBkYXkgYWJicmV2aWF0aW9ucyBoYXZlIGxlbmd0aCAyIG9ubHkKICAgLSBtY29va2llIGRvZXMgbm90IGJsb2NrIHdoZW4gbm8gcmFuZG9tIHN0dWZmIGlzIGF2YWlsYWJsZQogICAtIHNodXRkb3duIGdvdCBhIGNvbmZpZ3VyYXRpb24gZmlsZSAvZXRjL3NodXRkb3duLmNvbmYKICAgLSBmZGlzayBub3cgcmVhZHMgU0dJIGRpc2sgbGFiZWxzICh0aGFua3MgdG8gQW5kcmVhcyBOZXVwZXIpCiAgIC0gbWtzd2FwIG5vdyBrbm93cyBhYm91dCBuZXcgc3dhcCBhcmVhczsgbWtzd2FwLjggaGFzIGJlZW4gcmV3cml0dGVuCiAgIC0gdW1vdW50IGtub3dzIGFib3V0IHVtb3VudDIoKSBhbmQgZm9yY2VkIHVubW91bnRpbmcgb2YgbmZzIG1vdW50cwogICAgIChob3dldmVyLCBJIGRvbid0IHRoaW5rIGl0IHJlYWxseSB3b3JrcykKICAgLSBtb3VudCBpcyBub3cgd2lsbGluZyB0byBoYW5kbGUgZmlsZSBuYW1lcyB3aXRoIGVtYmVkZGVkIHNwYWNlcwogICAtIG1vdW50IGNhbiBub3cgbW91bnQgdGhpbmdzIGJ5IFVVSUQgb3Igdm9sdW1lIG5hbWUKMykgVWdsaWZpY2F0aW9uczoKICAgLSBzd2FwLmggaGFzIGJlZW4gcmVwbGFjZWQgYnkgYSBwcml2YXRlIHN3YXBfY29uc3RhbnRzLmggc2luY2UKICAgICA8bGludXgvc3dhcC5oPiBkb2VzIG5vdCBjb21waWxlCiAgIC0gcmVib290IGhhcyBiZWNvbWUgYSBwcml2YXRlIHJvdXRpbmUsIHNpbmNlIGxpYmM1IGFuZCBnbGliYzIgY29uZmxpY3QKICAgLSBhIG1rbWluaXgtMC4xIGRpcmVjdG9yeSBjb250YWlucyBzb21lIHBhdGNoZXMgdG8gbGV0IG1rZnMubWluaXgKICAgICB3b3JrIHVuZGVyIERPUy4gKFVudGVzdGVkLikKNCkgTnVtZXJvdXMgb3RoZXIgc21hbGwgY2hhbmdlcy4KCjB4RikgU2VuZCBxdWVzdGlvbnMgYW5kL29yIHBhdGNoZXMgdG8gdXRpbC1saW51eEBtYXRoLnVpby5ubwoKdXRpbC1saW51eCAyLjkgd2FzIHJlbGVhc2VkIGJ5IEFuZHJpZXMgQnJvdXdlciAtIGFlYkBjd2kubmwKVGhlIGFkZHJlc3MgdXRpbC1saW51eEBtYXRoLnVpby5ubyByZWFjaGVzIFJpaywgQW5kcmllcywgUGV0ZXIsCk1pY2hhZWwsIEVyaWssIE5pY29sYWkgYW5kIHBvc3NpYmx5IG90aGVycy4gIEh3Y2xvY2sgc3R1ZmYgaXMKZm9yd2FyZGVkIHRvIEJyeWFuLgoKdXRpbC1saW51eCAyLjg6CgpISUdITElHSFRTIGZvciB2ZXJzaW9uIDIuODoKCjEpIE5ldyBwcm9ncmFtczoKICAgLSBnZXRvcHQoMSkgYnkgRnJvZG8gTG9vaWphYXJkIHJlcGxhY2VzIHRoZSBvbGRlciBic2QgYmFzZWQgdmVyc2lvbi4KICAgICBLZXl3b3JkczogQmFja3dhcmQgY29tcGF0aWJsZSwgc3VwcG9ydHMgLS1sb25nIG9wdGlvbnMuCjEpIFJlbW92ZWQgcHJvZ3JhbXM6IAogICAtIGNocm9vdDogaXMgbm8gbG9uZ2VyIGluIHV0aWwtbGludXguICBHZXQgaXQgZnJlZSB3aXRoIEdOVSBzaC11dGlscwogICAtIGhvc3RpZDogTm8tb25lIGNvdWxkIGZpZ3VyZSBvdXQgdGhlIHJpZ2h0IHdheSBmb3IgdGhpcyBwcm9ncmFtIHRvCgkJd29yay4gIEFub3RoZXIgaG9zdGlkIHByb2dyYW0gaXMgaW5jbHVkZWQgaW4gcG9laWdsCgkJKHNlZSB0aGUgTFNNLCBQcmltYXJ5LXNpdGU6IGZ0cC5kYWltaS5hYXUuZGsgL3B1Yi9saW51eC9wb2UpCjIpIFZhcmlvdXMgcG9ydGFiaWxpdHkgZW5oYW5jZW1lbnRzLiAgQW1vbmcgb3RoZXIgdGhpbmdzIGh3Y2xvY2sgbm93IHdvcmtzCiAgIGEgbG90IGJldHRlciBvbiBub24gSW50ZWwgYXJjaGl0ZWN0dXJlcy4gIFNob3VsZCBjb21waWxlIHdpdGggbGliYyA0LCA1CiAgIGFuZCA2IGFzIHdlbGwgYXMgb2xkIGFuZCByZWNlbnQga2VybmVscy4gIFBlb3BsZSB1c2luZyBub24taW50ZWwgaGFyZHdhcmUKICAgYXJlIGVuY291cmFnZWQgdG8gc2VuZCBwYXRjaGVzLgozKSByZXYgbm93IG9ubHkgbGltaXRzIGxpbmVsZW5ndGggdG8gbWVtb3J5IGNhcGFjaXR5CjQpIGRtZXNnIG5vdyB1c2VzIGEgYnVmZmVyIHRoYXQgbWF0Y2hlcyB0aGUga2VybmVsIGJ1ZmZlciBpbiBzaXplICg4S0IpCgoKdXRpbC1saW51eCAyLjc6CgpISUdMSUdIVFMgZm9yIHZlcnNpb24gMi43OgoKMSkgdXRpbC1saW51eCBub3cgX3JlcXVpcmVzXyBuY3Vyc2VzLiAgU2V2ZXJhbCBwcm9ncmFtcyBhcmUgY29tcGxldGVseQogICBjb252ZXJ0ZWQgdG8gdXNlIHRlcm1pbmZvIChpbnN0ZWFkIG9mIHRlcm1jYXApLgoKMikgUmVtb3ZlZCBwcm9nYW1zOgogICAtIGNsb2NrOiBEcm9wcGVkIGVudGlyZWx5LiAgVXNlIGh3Y2xvY2sgKGluY2x1ZGVkKS4KICAgLSBzeW5jOiBpcyBpbiBnbnUgZmlsZXV0aWxzLgogICAtIHNldHNlcmlhbDogSXMgYmVpbmcgbWFpbnRhaW5lZCBieSBUZWQgVHMnbywgaGUgcmVjb21tZW5kcwoJc2V0c2VyaWFsLTIuMTIgKDIuMTMgaXMgYmFkIGx1Y2spCiAgIC0gY2xlYXI6IEluY2x1ZGVkIGluIG5jdXJzZXMKICAgLSBob3N0bmFtZSwgZG9tYWlubmFtZSwgZG5zZG9tYWlubmFtZTogSXQncyBpbiBuZXQtdXRpbHMuCiAgIC0gbHBjbnRsLgoKMykgQnVnZml4ZXMsIGFkZGl0aW9uczoKICAgLSBjZmRpc2s6IEEgbXVjaCBpbXByb3ZlZCB2ZXJzaW9uLiBBbGwga25vd24gYnVncyBoYXZlIGJlZW4gZml4ZWQuCiAgIC0gc2ZkaXNrOiBBIGNvbW1hbmQgbGluZSBmZGlzayB0eXBlIHV0aWxpdHksIGZvcm1lcmx5IGNhbGxlZCBmZGlzay0zLjA0LgogICAtIFNFQ1VSSVRZOiBBbGwga25vd24gaG9sZXMgaW4gbG9naW4sIGNoZm4sIGNoc2ggYW5kIG90aGVycyBoYXZlIGJlZW4KICAgICBwbHVnZ2VkLiAgVVBHUkFERSBOT1cgaWYgeW91IGhhdmVuJ3QgYWxyZWFkeSBmaXhlZCB0aGVtIHlvdXJzZWxmLgogICAtIFNob3VsZCB3b3JrIHdpdGggbGliYyA0LCA1IGFuZCA2IChnbnVsaWJjKSwgb24gbTY4aywgaW50ZWwsIGFscGhhCiAgICAgYW5kIHNwYXJjLgoKNCkgUHJvYmxlbXM6CiAgIC0gVGhlIHJwY2dlbiB0aGF0IGNvbWVzIGluIE5ldEtpdC1CLTAuMDkgaXMgYnJva2VuLiAgQXQgbGVhc3QgYXMKICAgICBwYWNrYWdlZCB3aXRoIFJlZEhhdCA0LjIgKE5ldEtpdC1CLTAuMDktNikuICBUaGVyZSBhcmUgc2V2ZXJhbAogICAgIHdheXMgdG8gZGVhbCB3aXRoIHRoaXM6CiAgICAgLSBEb24ndCBydW4gcnBjZ2VuLCB0aGUgbmVlZGVkIHByZS1nZW5lcmF0ZWQgc291cmNlcyBhcmUgaW5jbHVkZWQKICAgICAgIChuZnNtb3VudF94ZHIuYykuICBZb3UgbXVzdCBoYWNrIG1vdW50L01ha2VmaWxlIHRvIGRvIHRoaXMuCiAgICAgLSBFZGl0IHRoZSBzb3VyY2UgZW1pdHRlZCBieSBycGNnZW4gc28gaXQgY2FuIGNvbXBpbGUuICBUaGlzIGlzIHZlcnkKICAgICAgIHNpbXBsZSBpZiB5b3Uga25vdyBDLgogICAgIC0gRGlzYWJsZSB0aGUgTkZTIHBhcnRzIG9mIG1vdW50LiAgWW91IGhhdmUgdG8gZWRpdCBtb3VudC9NYWtlZmlsZQogICAgICAgdG8gZG8gdGhpcy4KICAgICAtIFVzZSBzb21lIG90aGVyIHJwY2dlbi4KCnV0aWwtbGludXggMi42LjEKClRoaXMgcmVsZWFzZSB3YXMgbmV2ZXIgbWFkZSBwdWJsaWMKClNlZSBub3RlcyBmb3IgMi42IGZvciBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zLgoKVGhpcyBpcyBhIGluY3JlbWVudGFsIHJlbGVhc2UgY29udGFpbmluZyBzb21lIGZpeGVzLiAgQSBuZXcgcmVsZWFzZQp3aWxsIGJlIG1hZGUgbGF0ZXIgZml4aW5nIHRoZSBvdXRzdGFuZGluZyBidWdzLgotIFRoaW5ncyBjb21waWxlcyBhbmQgd29ya3MgYmV0dGVyIHdpdGggcmVjZW50IHJlbGVhc2VzIG9mIGtlcm5lbCwgCiAgbmN1cnNlcywgYW5kIHNvIGZvcnRoOiBmZGlzaywgbW9yZQotIFNvbWUgZml4ZXMgdG8gbWFrZSB0aGluZ3MgY29tcGlsZSBvdXQgb2YgdGhlIGJveCBvbiBhbHBoYXMuCi0gVGhlcmUgaGFzIGJlZW4gcmVwb3J0ZWQgYSBwcm9ibGVtIHdpdGggbG9naW4gYW5kIC9ldGMvdXNlcnR0eS4gIEl0CiAgc2hvdWxkIGJlIGZpeGVkLiAgSWYgeW91IHN0aWxsIGhhdmUgcHJvYmxlbXMgZ2V0IGEgcmVjZW50IE1BS0VERVYgYW5kIAogIHVzZSBpdCB0byBtYWtlIG5ldyB0dHkgZGV2aWNlcy4gIFRoZXkgd2VyZSByZW51bWJlcmVkIHNvbWV0aW1lIGR1cmluZwogIHRoZSAxLjMgcGhhc2Ugb2YgdGhlIGtlcm5lbC4KLSBpcGNzIG5vdyBkaXNwbGF5cyB0aGUga2V5IG9mIHRoZSBzdHJ1Y3R1cmVzLgotIEEgKGhhcm1sZXNzPykgb3ZlcmZsb3cgYnVnIHdhcyBmaXhlZCBpbiBsb2dpbi4KCk91dHN0YW5kaW5nIGJ1Z3M6Ci0gbG9naW4vZ2V0dHkgaGFzIGEgZGVuaWFsIG9mIHNlcnZpY2UgcHJvYmxlbS4KLSBTZXZlcmFsIHBsYWNlcyBuZWVkcyBhIGJpdCBtb3JlIHBvbGlzaC4KLSBUaGVyZSBhcmUgYSBfbG90XyBvZiBub25mYXRhbCB3YXJuaW5ncyB3aGVuIGNvbXBpbGluZyBtb3VudC4gIFRoaXMgd2lsbAogIG5vdCBuZWNlc2FyaWx5IGJlIGZpeGVkLgoKCnV0aWwtbGludXggMi42CgpISUdITElHSFRTIGZvciB2ZXJzaW9uIDIuNjoKCjApIFRoZSBmaXJzdCByZWxlYXNlIHdpdGggbWUgYXQgdGhlIGhlbG0uICBQTEVBU0UgU0VORCBQQVRDSEVTIEFORAogICBVUERBVEVTIFRPOiB1dGlsLWxpbnV4QG1hdGgudWlvLm5vLgoKMSkgUmVtb3ZlZCBwcm9ncmFtczoKICAgLSBtZDVzdW0sIGRzcGxpdDogYXZhaWxhYmxlIGluIEdOVSB0ZXh0dXRpbHMuCiAgIC0gc3lzbG9nZDogU3lza2xvZ2QgaXMgbm93IHByZWZlcmVkLiAgSXQgaXMgYXZhaWxhYmxlIGF0IAoJdHN4LTExLm1pdC5lZHU6L3B1Yi9zb3VyY2VzL3NiaW4KCXN1bnNpdGUudW5jLmVkdTovcHViL0xpbnV4L3N5c3RlbS9EYWVtb25zCgoyKSBCdWdmaXhlcywgYWRkaXRpb25zOiAKICAgLSBTRUNVUklUWTogQWxsIGtub3duIGhvbGVzIGluIG1vdW50IGhhdmUgYmVlbiBmaXhlZC4gIFVQR1JBREUgTk9XCiAgICAgaWYgeW91IGhhdmVuJ3QgYWxyZWFkeSEKICAgLSBQb3J0YWJpbGl0eSBlbmhhbmNtZW50cyB0byB0aGUgbWluaXggZmlsZXN5c3RlbSB1dGlscyAobTY4ayBhbmQKICAgICBBcm0gcGF0Y2hlcykuCiAgIC0gcGFzc3dkL2Noc2gvY2hmbiB3aWxsIG5vdCBtZXNzIHVwIHRoZSBwYXNzd2QgZmlsZSBvbiBhIE5JUyBtYWNoaW5lCiAgIC0gb3RoZXJzIHRvbyBudW1lcm91cyB0byBlbnVtZXJhdGUuCgozKSBOZXcgcHJvZ3JhbXM6IAogICAtIHZpZ3IgKGl0J3MgbGlrZSB2aXB3KQogICAtIEludHJvZHVjaW5nIGh3Y2xvY2suICBBIGNvbXBsZXRlIHJld3JpdGUgb2YgdGhlIGxhdGVzdCBhdmFpbGFibGUKICAgICBjbG9jayBzb3VyY2UuICBJdCBzdXBwb3J0cyBpbnRlbC9DTU9TLCAvZGV2L3J0YyBhbmQgbGludXgvbTY4awogICAgIHN5c3RlbSBjbG9jayBpbnRlcmZhY2VzLiAgQ2xvY2sgc3VwcG9ydHMgdGhlIHNhbWUgdGhpbmdzIGJ1dCBpcyBub3cKICAgICBvYnNvbGV0ZSBhbmQgd2lsbCBub3QgYmUgcHJlc2VudCBpbiB0aGUgbmV4dCByZWxlYXNlLiAgU3RhcnQgdXNpbmcKICAgICBod2Nsb2NrIG5vdy4gIFBsZWFzZS4KCgp1dGlsLWxpbnV4IDIuNQoKSElHSExJR0hUUyBmb3IgdmVyc2lvbiAyLjU6CjApIE5pY29sYWkgTGFuZ2ZlbGR0IGlzIHRha2luZyBvdmVyIG1haW50ZW5hbmNlIG9mIHV0aWwtbGludXgsIHdpdGggdGhlCiAgIGhlbHAgb2YgYSBmZXcgb3RoZXJzIChNaWNoYWVsIEsuIEpvaG5zb24sIEFuZHJpZXMgQnJvdXdlciwgYW5kIFJpawogICBGYWl0aCkuCgogICBQTEVBU0UgU0VORCBQQVRDSEVTIEFORCBVUERBVEVTIFRPOiB1dGlsLWxpbnV4QG1hdGgudWlvLm5vCgoxKSBUaGUgZm9sbG93aW5nIHBhY2thZ2VzIGhhdmUgYmVlbiByZW1vdmVkLiAgUGxlYXNlIHVzZSB0aGUgdXAtdG8tZGF0ZSwKICAgY2Fub25pY2FsIHZlcnNpb25zIG9mIHRoZXNlIHBhY2thZ2VzIGZyb20gdGhlIGxpc3RlZCBwbGFjZXM6CgogICAgdGltZXpvbmUgc3VwcG9ydCAoL3Vzci9saWIvem9uZWluZm8sIGxpYnouYSwgemljLCB6ZHVtcCk6CiAgICAgICAgZWxzaWUubmNpLm5paC5nb3Y6L3B1Yi90emNvZGU5NWQudGFyLmd6CiAgICAgICAgZWxzaWUubmNpLm5paC5nb3Y6L3B1Yi90emRhdGE5NWgudGFyLmd6CiAgICBNQUtFREVWLUM6CiAgICAgICAgc3Vuc2l0ZS51bmMuZWR1Oi9wdWIvTGludXgvc3lzdGVtL0FkbWluL01BS0VERVYtQy0xLjUudGFyLmd6CiAgICBNQUtFREVWOgogICAgICAgIHN1bnNpdGUudW5jLmVkdTovcHViL0xpbnV4L3N5c3RlbS9BZG1pbi9NQUtFREVWLTIuMi50YXIuZ3oKICAgIG1kNXN1bToKICAgICAgICBwcmVwLmFpLm1pdC5lZHU6L3B1Yi9nbnUvdGV4dHV0aWxzLTEuMy50YXIuZ3oKICAgICAgICBbVGhlIEdOVSB2ZXJzaW9uIGlzIG5vdyBjb21wYXRpYmxlIHdpdGggdGhlIFBsdW1iL0xhbmtlc3RlcgogICAgICAgIHZlcnNpb24uXQogICAga3N5bW9vcHM6CiAgICAgICAgTm93IGJ1bmRsZWQgd2l0aCB0aGUga2VybmVsIGluIGxpbnV4L3NjcmlwdHMuCgoyKSB1cGRhdGVfc3RhdGUgaGFzIGJlZW4gcmVtb3ZlZAozKSBmZGlzayBub3cgc3VwcG9ydHMgTmV0QlNEIGRpc2tsYWJlbHMgY291cnRlc3kgb2YgQmVybmhhcmQgRmFzdGVucmF0aAogICA8ZmFzdGVuQGF0aGVuZS5pbmZvcm1hdGlrLnVuaS1ib25uLmRlPiAoYW5kID4gOEdCIGRpc2tzLCBjb3VydGVzeSBvZgogICBBbmRyaWVzIEJyb3V3ZXIpCjQpIG1vdW50IGltcHJvdmVkIC0tIG1hbnkgcGF0Y2hlcyBmcm9tIEFuZHJpZXMgQnJvdXdlciBmb3IgZ3JlYXRseSBpbXByb3ZlZAogICBlcnJvciByZXBvcnRpbmcKNSkgZGRhdGUsIGNoa2R1cGV4ZSwgYW5kIG90aGVyIHByb2dyYW1zIGhhdmUgYmVlbiBpbXByb3ZlZCBhbmQgYnVnIGZpeGVkCjYpIHV0aWwtbGludXggaXMgbm93IGEgc291cmNlLW9ubHkgZGlzdHJpYnV0aW9uCjcpIG1jb29raWUgZ2VuZXJhdGVzIGJldHRlciByYW5kb20gbnVtYmVycyBhbmQgd2lsbCB1c2UgL2Rldi9yYW5kb20gb3IKICAgL2Rldi9hdWRpbyBpZiBhdmFpbGFibGUKOCkgY2hmbiwgY2hzaCwgcGFzc3dkLCBhbmQgdmlwdyBoYXZlIGJlZW4gdXBkYXRlZCB3aXRoIHNlY3VyaXR5IHBhdGNoZXMKICAgZnJvbSBaZWZyYW0gPEEuTWFpbkBkY3Mud2Fyd2ljay5hYy51az4uICBOb3csIHRoZXkgYWxsIHVzZSB0aGUgc2FtZQogICBsb2NraW5nLCBhbmQgc2V2ZXJhbCBzZWN1cml0eSBob2xlcyBoYXZlIGJlZW4gcGF0Y2hlZC4gIEZ1cnRoZXIsIGNoc2gKICAgYW5kIGNoZm4gY2FuIGJlIGNvbmZpZ3VyZWQgYXQgY29tcGlsZSB0aW1lIHRvIHJlcXVpcmUgYSBwYXNzd29yZCBiZWZvcmUKICAgdXBkYXRlcyBhbmQgY2hzaCBjYW4gYmUgY29uZmlndXJlZCB0byBvbmx5IHVzZSBzaGVsbHMgZnJvbSAvZXRjL3NoZWxscy4KICAgICAgICAKCkhJR0hMSUdIVFMgZm9yIHZlcnNpb24gMi40ICgyLjMgd2FzIG5ldmVyIHJlbGVhc2VkKToKMCkgTWljaGFlbCBLLiBKb2huc29uIDxqb2huc29ubUBuaWdlbC52bmV0Lm5ldD4gaXMgdGhlIGludGVyaW0gbWFpbnRhaW5lcgogICB3aGlsZSBSaWsgRmFpdGggaXMgd29ya2luZyBvbiBQaEQgd29yay4KMSkgbG9naW4gbm93IG1ha2VzIHRoZSBsb2dpbiB0dHkgbW9kZSA2MDAgYW5kIHBsYWNlcyBpdCBpbiBncm91cCAidHR5IgoyKSB3YWxsLCBhbmQgd3JpdGUgd2lsbCBub3Qgd3JpdGUgZGFuZ2Vyb3VzIGVzY2FwZSBzZXF1ZW5jZXMKMykgd2FsbCBhbmQgd3JpdGUgY2FuIGJlIHJ1biBzZXRnaWQgInR0eSIuICBJZiB1dGlsLWxpbnV4IGlzIGNvbXBpbGVkIGZvcgogICB0aGlzIG9wdGlvbiwgIm1lc2cgeSIgd2lsbCBvbmx5IHNldCBncm91cCB3cml0ZSBpbnN0ZWFkIG9mIGdyb3VwL290aGVyCiAgIHdyaXRlLgo0KSBmZGlzayBhbmQgY2ZkaXNrIGhhdmUgYmVlbiBwYXRjaGVkIHdpdGggdGhlIGxhdGVzdCBsbHNlZWsuYy4gIEFsdGhvdWdoIEkKICAgaGFkIGEgbG90IG9mIGJ1ZyByZXBvcnRzIGFib3V0IGZkaXNrIGZyb20gdXRpbC1saW51eC0yLjIsIEkgd2FzIHVuYWJsZQogICB0byByZXByb2R1Y2UgYW55IG9mIHRoZSBwcm9ibGVtcy4gIFNvbWUgb2YgdGhlIHByb2JsZW1zIGFwcGVhcmVkIHRvIGJlCiAgIHJlbGVhdGVkIHRvIGEgZmFpbHVyZSB0byByZWJvb3QgdGhlIG1hY2hpbmUgYWZ0ZXIgY2hhbmdpbmcgdGhlIHBhcnRpdGlvbgogICB0YWJsZSwgYW5kIHNvbWUgbWF5IGhhdmUgYmVlbiBkdWUgdG8gYSBzcGVjaWZpYyBrZXJuZWwgcmV2aXNpb24gcHJvYmxlbS4KICAgSG93ZXZlciwgdGhpcyBkb2Vzbid0IHNlZW0gdG8gYWNjb3VudCBmb3IgYWxsIG9mIHRoZSBidWcgcmVwb3J0cyAtLSBpZgogICB0aGlzIHZlcnNpb24gZ2l2ZXMgeW91IHByb2JsZW0sIHBsZWFzZSBzZW5kIGFzIGNvbXBsZXRlIGEgYnVnIHJlcG9ydCBhcwogICBwb3NzaWJsZS4KNSkgY2hrZHVwZXhlIGZyb20gTmljb2xhaSBMYW5nZmVsZHQgKGphbmxAaWZpLnVpby5ubykKNikgY3RybGFsdGRlbCBub3cgaW5zdGFsbHMgaW50byAvc2JpbiBpbnN0ZWFkIG9mIC91c3Ivc2Jpbgo3KSBta2ZzIHJlcGxhY2VtZW50IGZyb20gUm9uIFNvbW1lbGluZyAoc29tbWVsQHNjaS5rdW4ubmwpCjgpIGxwY250bCByZW1vdmVkLiAgVXNlIHR1bmVscCBpbnN0ZWFkLgo5KSBrc3ltb29wcyBmcm9tIEdyZWcgTWNHYXJ5IDxna21AbWFnaWxsYS5jaWNobGlkLmNvbT4KMTApIG1rZnMubWluaXggbm93IGNsZWFycyB0aGUgZmlyc3QgNTEyIGJ5dGVzIG9mIHRoZSBmaWxlIHN5c3RlbSBzbyB0aGF0CiAgICBNaW5peCBkaXNrcyB3b24ndCBiZSBjb25mdXNlZCB3aXRoIE1TRE9TIGRpc2tzIChEYW5pZWwgUXVpbmxhbgogICAgKHF1aW5sYW5AeWdnZHJhc2lsLmNvbSkpCjExKSBta3N3YXAgc2hvdWxkIG5vdyB3b3JrIG9uIGFuIEFscGhhIHJ1bm5pbmcgTGludXgKMTIpIGZyYWcgcmVtb3ZlZC4gIFNlZQogICAgc3Vuc2l0ZS51bmMuZWR1Oi9wdWIvTGludXgvc3lzdGVtL0ZpbGVzeXN0ZW1zL2RlZnJhZy0wLjYudGFyLmd6IGZvciB0aGUKICAgIGxhdGVzdCB2ZXJzaW9uLgoxMykgbW91bnQgcGF0Y2hlcyBmcm9tIEFuZHJpZXMuQnJvdXdlckBjd2kubmwgYW5kIERhbiBRdWlubGFuCiAgICAocXVpbmxhbkB5Z2dkcmFzaWwuY29tKS4KMTQpIE1BS0VERVYgYW5kIE1BS0VERVYtQyB1cGRhdGVkIHRvIHRoZSBsYXRlc3QgdmVyc2lvbnMuCjE1KSBQYXRocyB1cGRhdGVkIGZvciBGU1NUTkQgMS4yLiAgVGhpcyBtZWFucyB0aGF0IHlvdSBtYXkgbmVlZCB0byBtYWtlCiAgICBzb21lIGxpbmtzLiAgVGhlIGxpbmtzIHlvdSBuZWVkIHRvIG1ha2Ugd2Ugc3lzdGVtIGRlcGVuZGVudC4gIFRoZQogICAgdWx0aW1hdGUgZ29hbCBpcyB0byByZW5hbWUgL3Zhci9hZG0gdG8gL3Zhci9sb2cgYW5kIGhhdmUgYSBzeW1ib2xpYwogICAgbGluayBmcm9tIC92YXIvYWRtIHRvIC92YXIvbG9nIGR1cmluZyB0aGUgdHJhbnNpdGlvbiBwZXJpb2QuICBJZiB5b3UKICAgIGFyZSBydW5uaW5nIGFuIEVMRiBzeXN0ZW0sIHlvdSBwcm9iYWJseSB3b24ndCBoYXZlIHRvIGRvIGFueXRoaW5nLiAgVGhlCiAgICBib3R0b20gbGluZSBpcyB0aGF0IHRoZSBmb2xsb3dpbmcgZmlsZXMgbXVzdCBleGlzdCBvciBiZSBwb2ludGVycyB0bwogICAgdGhlIG9sZCB2ZXJzaW9uICh1c2VkIGludGVybmFsbHkgYnkgdGhlIGEub3V0IGxpYnJhcmllcyk6CgogICAgICAgICAgICAgTmV3ICAgICAgICAgICAgICAgICBPbGQKCiAgICAgICAgL3Zhci9sb2cvd3RtcCAgICAgICAvdmFyL2FkbS93dG1wCiAgICAgICAgL3Zhci9sb2cvbGFzdGxvZyAgICAvdmFyL2FkbS9sYXN0bG9nCiAgICAgICAgL3Zhci9ydW4vdXRtcCAgICAgICAvdmFyL2FkbS91dG1wCgpISUdITElHSFRTIGZvciB2ZXJzaW9uIDIuMjoKMSkgVGhpcyBpcyBwcmltYXJpbHkgYSBxdWljayBidWctZml4IHJlbGVhc2UgZm9yIHZlcnNpb24gMi4xCjIpIG1rZnMgd3JhcHBlciBhZGRlZCBiYWNrIGluLCBzaW5jZSBlMmZzcHJvZ3Mgb25seSBzdXBwbGllcyBhbiBmc2NrIHdyYXBwZXIKMykgc2VsZWN0aW9uIHJlbW92ZWQsIHNpbmNlIHNvbWVvbmUgYXBwZWFycyB0byBiZSBtYWludGFpbmluZyBpdCBub3cuICBTZWUKICAgc3Vuc2l0ZS51bmMuZWR1Oi9wdWIvbGludXgva2VybmVsL3BhdGNoZXMvY29uc29sZSBmb3IgcmVjZW50IHNvdXJjZXMuCiAgIEZvciB0aGUgdGltZSBiZWluZywgSSdtIGtlZXBpbmcgYSBjb3B5IGluIHRoZSBoaXN0b3JpYyBzdWJkaXJlY3Rvcnkgb2YKICAgdXRpbC1saW51eC4gIEEgIm1ha2UgaW5zdGFsbCIgc2hvdWxkIHdvcmsgZmluZCBmcm9tIHdpdGhpbiB0aGF0CiAgIGRpcmVjdG9yeS4KNCkgTm90ZSB0aGF0IG90aGVyIGZsb3BweSB1dGlsaXRpZXMgYXJlIGF2YWlsYWJsZSBmcm9tOgogICAgZnRwLmltYWcuZnI6cHViL0xpbnV4L1pMSUJDL2ZkdXRpbHMvZmR1dGlscy00LjEuc3JjLnRhci5negogICAgc3Vuc2l0ZS51bmMuZWR1Oi9wdWIvTGludXgvc3lzdGVtL01pc2MvZmR1dGlscy00LjEuc3JjLnRhci5negogICAgdHN4LTExLm1pdC5lZHU6L3B1Yi9saW51eC9zb3VyY2VzL3NiaW4vZmR1dGlscy00LjEuc3JjLnRhci5negoKCkhJR0hMSUdIVFMgZm9yIHZlcnNpb24gMi4xOgoKMSkgRGlyZWN0b3J5IHN0cnVjdHVyZSByZWFycmFuZ2UsIHdpdGggY29uZmlndXJhdGlvbiBzdXBwb3J0IGZvciB0aG9zZSB3aG8KICAgdXNlIHNoYWRvdyBwYXNzd29yZHMgYW5kIFN5c3RlbSBWIGluaXQgKG5vIHN1cHBvcnQgaXMgcHJvdmlkZWQgZm9yIHRoZXNlCiAgIHRoaW5ncywgYnV0IHlvdXIgdXRpbGl0aWVzIHdvbid0IGdldCBvdmVyd3JpdHRlbiBpZiB5b3UgZG8gYSAibWFrZQogICBpbnN0YWxsIiBhZnRlciB5b3UgcHJvcGVybHkgZWRpdCBNQ09ORklHKS4KMikgZmRpc2sgYW5kIGNmZGlzayBzaG91bGQgd29yayBhcyBleHBlY3RlZCB3aXRoIDJHQisgZGlzayBkcml2ZXMKMykgQXMgdXN1YWwsIGxvdHMgb2Ygc3R1ZmYgd2FzIHVwZGF0ZWQgYW5kIGFkZGVkLCBpbmNsdWRpbmcgbW91bnQsIHZpcHcsCiAgIHJlYWRwcm9maWxlCjQpIFNvbWUgc3R1ZmYgd2FzIGFsc28gZGVsZXRlZCwgYW5kIGNhbiBub3cgYmUgZm91bmQgZWxzZXdoZXJlOgogICAgZnNjayB3cmFwcGVyOiB0c3gtMTEubWl0LmVkdTovcHViL2xpbnV4L0FMUEhBL2V4dDJmcy9lMmZzcHJvZ3MqCiAgICBwd2QsIHN1OiBwcmVwLmFpLm1pdC5lZHU6L3B1Yi9nbnUvc2gtdXRpbHMqCiAgICBlZDogcHJlcC5haS5taXQuZWR1Oi9wdWIvZ251L2VkKgogICAgb2Q6IHByZXAuYWkubWl0LmVkdTovcHViL2dudS90ZXh0dXRpbHMqCiAgICB1dWRlY29kZS91dWVuY29kZTogcHJlcC5haS5taXQuZWR1Oi9wdWIvZ251L3NoYXJ1dGlscyoKICAgIGJkZmx1c2gvdXBkYXRlOiBmdHAuZnVuZXQuZmk6L3B1Yi9PUy9MaW51eC9QRU9QTEUvTGludXMvdjEuMS9iZGZsdXNoKgoKCgpQQVJUSUFMIEhJU1RPUlkgT0YgVVRJTC1MSU5VWDoKCmJzZDoKICAgIE5vdGhpbmcgaW4gdGhpcyBkaXJlY3RvcnkgZ2V0cyBpbnN0YWxsZWQsIGJ1dCBzb21lIEJTRCBwcm9ncmFtcyBuZWVkCiAgICB0aGlzIHN1cHBvcnQ6CiAgICAgICAgZXJyLmM6IDguMSAoQmVya2VsZXkpIDYvNC85MwogICAgICAgIGVyci5oOiA4LjEgKEJlcmtlbGV5KSA2LzIvOTMKICAgICAgICBnZXRvcHQuYzogNC4xMyAoQmVya2VsZXkpIDIvMjMvOTEKICAgICAgICBwYXRobmFtZXMuaDogNS4zIChCZXJrZWxleSkgNS85Lzg5IHdpdGggZXh0ZW5zaXZlIG1vZGlmaWNhdGlvbnMgZm9yCiAgICAgICAgICAgICAgICAgICAgIExpbnV4CgpkaXNrLXV0aWxzOgogICAgY2ZkaXNrOiAwLjggQkVUQSAoPjJHQikgZnJvbSBLZXZpbiBFLiBNYXJ0aW4gKG1hcnRpbkBjcy51bmMuZWR1KSB3aXRoCiAgICAgICAgICAgIG1vZGlmaWNhdGlvbnMgZm9yIGRpc2tzID4gMkdCLgogICAgICAgICAgICBmdHAuY3MudW5jLmVkdTovcHViL3VzZXJzL21hcnRpbi9saW51eC9jZmRpc2stMC44LnRhci5negogICAgZmRmb3JtYXQ6IFdlcm5lciBBbG1lc2JlcmdlciAoYWxtZXNiZXJAbmVzc2llLmNzLmlkLmV0aHouY2gpLCB3aXRoCiAgICAgICAgICAgICAgbW9kaWZpY2F0aW9ucyBieSBNYXJjZWwgTW9sIChtYXJjZWxAZHV0ZWNhZC5ldC50dWRlbGZ0Lm5sKSkuCiAgICAgICAgICAgICAgTGF0ZXIsIHVwZGF0ZWQgd2l0aCBhIFNlcHRlbWJlciAxOTkyIHZlcnNpb24gYnkgV2VybmVyLgogICAgZmRpc2s6IEEuIFYuIExlIEJsYW5jIChMZUJsYW5jQG1jYy5hYy51aykgZmRpc2sgMS41IHJlbGVhc2UsIHdpdGgKICAgICAgICAgICBwYXRjaGVkIGZyb20gS2V2aW4gTWFydGluIGZvciBET1MgYW5kIE9TLzIgY29tcGF0aWJpbGl0eSAoMS41YSk7CiAgICAgICAgICAgUmlrIEZhaXRoICgxLjViLCAyLjApLgogICAgZnNjay5taW5peCwgbWtmcy5taW5peDogTGludXMgVG9ydmFsZHMsIHdpdGggbW9kaWZpY2F0aW9ucyBieTogUmlrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGYWl0aCAoZmFpdGhAY3MudW5jLmVkdSksIFNjb3R0IEhlYXZuZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZGhAcG8uY3dydS5lZHUpLCBEci4gV2V0dHN0ZWluCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3JlZyV3aW5kLnV1Y3BAcGxhaW5zLm5vZGFrLmVkdSksIERhbmllbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUXVpbmxhbiAocXVpbmxhbkB5Z2dkcmFzaWwuY29tKS4KICAgIG1rZnM6IERhdmlkIEVuZ2VsIChkYXZpZEBvZHMuY29tKSBhbmQgRnJlZCBOLiB2YW4gS2VtcGVuCiAgICAgICAgICAod2FsdGplQHVXYWx0Lk5MLk11Z25ldC5PUkcpCiAgICAgICAgICBWZXJzaW9uIDEuOSBmcm9tIFJvbiBTb21tZWxpbmcgKHNvbW1lbEBzY2kua3VuLm5sKQogICAgbWtzd2FwOiBMaW51cyBUb3J2YWxkcywgd2l0aCBtb2RpZmljYXRpb25zIGJ5IE1pa2UgSmFnZGlzCiAgICAgICAgICAgIChqYWdneUBwdXJwbGV0LmRlbW9uLmNvLnVrLiApCiAgICAgICAgICAgIFZlcnNpb24gZm9yIEFscGhhIGZyb20KICAgICAgICAgICAgY2FnZS5jcy5hcml6b25hLmVkdTovcHViL2RhdmlkbS9saW51eC9ta3N3YXAtYXhwLTk1MDUwMy50YXIuZ3oKICAgIHNldGZkcHJtOiBXZXJuZXIgQWxtZXNiZXJnZXIgKGFsbWVzYmVyQG5lc3NpZS5jcy5pZC5ldGh6LmNoKQogICAgICAgICAgICAgIE5vdGUgdGhhdCBtb3JlIGZsb3BweSB1dGlsaXRpZXMgYXJlIGF2YWlsYWJsZSBmcm9tOgogICAgICAgICAgICAgICAgZnRwLmltYWcuZnI6cHViL0xpbnV4L1pMSUJDL2ZkdXRpbHMvZmR1dGlscy00LjEuc3JjLnRhci5negogICAgICAgICAgICAgICAgc3Vuc2l0ZS51bmMuZWR1Oi9wdWIvTGludXgvc3lzdGVtL01pc2MvZmR1dGlscy00LjEuc3JjLnRhci5negogICAgICAgICAgICAgICAgdHN4LTExLm1pdC5lZHU6L3B1Yi9saW51eC9zb3VyY2VzL3NiaW4vZmR1dGlscy00LjEuc3JjLnRhci5negogICAgbGxzZWVrLmM6IGZyb20gUmVteSBDYXJkJ3MgZTJmc3Byb2dzLTAuNWIudGFyLmd6ICgyMU1hcjk1IHZlcnNpb24pIGZyb206CiAgICAgICAgICAgICAgICBzdW5zaXRlLnVuYy5lZHU6L3B1Yi9MaW51eC9zeXN0ZW0vRmlsZXN5c3RlbXMvZXh0MgoKZ2FtZXM6CiAgICBiYW5uZXI6ICg4LjMgKEJlcmtlbGV5KSA0LzIvOTQpCiAgICAgICAgICAgIGZ0cC5jZHJvbS5jb206L3B1Yi9ic2Qtc291cmNlcy80LjRCU0QtTGl0ZS91c3Ivc3JjL3Vzci5iaW4KCmxvZ2luLXV0aWxzOgogICAgYWdldHR5OiBXLiBaLiBWZW5lbWEsIHBvcnRlZCBieSBQZXRlciBPcmJhZWsgPHBvZUBkYWltaS5hYXUuZGs+LgogICAgICAgICAgICBmdHAuZGFpbWkuYWF1LmRrOi9wdWIvbGludXgvcG9lL3BvZWlnbC0xLjM3LnRhci5negogICAgY2hmbjogU2FsdmF0b3JlIFZhbGVudGUgPHN2YWxlbnRlQGF0aGVuYS5taXQuZWR1PgogICAgY2hzaDogU2FsdmF0b3JlIFZhbGVudGUgPHN2YWxlbnRlQGF0aGVuYS5taXQuZWR1PgogICAgbGFzdDogNS4xMSB3L3llYXIgKEJlcmtlbGV5KSA2LzI5Lzg4OyBQb3J0IGJ5IE1pY2hhZWwgSGFhcmR0IHdpdGgKICAgICAgICAgIGNoYW5nZXMgYnkgUGV0ZXIgT3JiYWVrLgogICAgICAgICAgZnRwOi8vZnRwLmRhaW1pLmFhdS5kay9wdWIvbGludXgvcG9lL2FkbXV0aWwtMS4xNi50YXIuZ3oKICAgIGxvZ2luOiA1LjQwIChCZXJrZWxleSkgNS85Lzg5OyB3aXRoIHBvcnRzIGJ5IE1pY2hhZWwgR2xhZCBhbmQgUGV0ZXIgT3JiYWVrCiAgICAgICAgICAgZnRwLmRhaW1pLmFhdS5kazovcHViL2xpbnV4L3BvZS9wb2VpZ2wtMS4zNy50YXIuZ3oKICAgIG1lc2c6IDguMiAoQmVya2VsZXkpIDEvMjEvOTQKICAgICAgICAgIGZ0cC5jZHJvbS5jb206L3B1Yi9ic2Qtc291cmNlcy80LjRCU0QtTGl0ZS91c3Ivc3JjL3Vzci5iaW4KICAgIG5ld2dycDogTWljaGFlbCBIYWFyZHQsIHdpdGggbW9kaWZpY2F0aW9ucyBieSBQZXRlciBPcmJhZWsuCiAgICAgICAgICAgIGZ0cDovL2Z0cC5kYWltaS5hYXUuZGsvcHViL2xpbnV4L3BvZS9hZG11dGlsLTEuMTYudGFyLmd6CiAgICBwYXNzd2Q6IFBldGVyIE9yYmFlaywgd2l0aCB5cCBtb2RpZmljYXRpb25zIGJ5IEFsdmFybyBNYXJ0aW5legogICAgICAgICAgICBFY2hldmFycmlhIChhbHZhcm9AZW5hbm8uZXRzaXQudXBtLmVzKQogICAgICAgICAgICBmdHA6Ly9mdHAuZGFpbWkuYWF1LmRrL3B1Yi9saW51eC9wb2UvYWRtdXRpbC0xLjE2LnRhci5negogICAgc2h1dGRvd246IFBldGVyIE9yYmFlaywgd2l0aCBuZXcgbW9kaWZpY2F0aW9ucyBieSBTdGVwaGVuIFR3ZWVkaWUsIFJpawogICAgICAgICAgICAgIEZhaXRoLCBhbmQgRGF2ZSAoZ2VudHplbEBub3ZhLmVuZXQuZGVjLmNvbSkuCiAgICAgICAgICAgICAgZnRwOi8vZnRwLmRhaW1pLmFhdS5kay9wdWIvbGludXgvcG9lL2FkbXV0aWwtMS4xNi50YXIuZ3oKICAgIHNpbXBsZWluaXQ6IFBldGVyIE9yYmFlawogICAgICAgICAgICAgICAgZnRwLmRhaW1pLmFhdS5kazovcHViL2xpbnV4L3BvZS9wb2VpZ2wtMS4zNy50YXIuZ3oKICAgIHZpcHc6IDUuMTYgKEJlcmtlbGV5KSAzLzMvOTEsIHdpdGggbW9kaWZpY2F0aW9ucyBieSBNaWtlIEdydXBlbmhvZmYKICAgICAgICAgIDxrYXNobWlyQHVtaWFjcy5VTUQuRURVPiAKICAgIHdhbGw6IDguMiAoQmVya2VsZXkpIDExLzE2LzkzIChXaXRoIGNoYW5nZXMgc28gdGhhdCBkYW1hZ2luZyBlc2NhcGUKICAgICAgICAgIHNlcXVlbmNlcyBjYW5ub3QgYmUgc2VudC4pCiAgICAgICAgICBmdHAuY2Ryb20uY29tOi9wdWIvYnNkLXNvdXJjZXMvNC40QlNELUxpdGUvdXNyL3NyYy91c3IuYmluCgoKbWlzYy11dGlsczoKICAgIGNhbDogOC40IChCZXJrZWxleSkgNC8yLzk0LCB3aXRoIG1vZGlmaWNhdGlvbnMgYnkgUmlrIEZhaXRoIGFuZAogICAgICAgICBIZWluQHN0dWRlbnQudHUtY2xhdXN0aGFsLmRlIChKb2NoZW4gSGVpbikuCiAgICAgICAgIGZ0cC5jZHJvbS5jb206L3B1Yi9ic2Qtc291cmNlcy80LjRCU0QtTGl0ZS91c3Ivc3JjL3Vzci5iaW4KICAgIGNoa2R1cGV4ZTogVmVyc2lvbiAxLjIgZnJvbSAiTmljb2xhaSBMYW5nZmVsZHQiIDxqYW5sQGlmaS51aW8ubm8+CiAgICBjbGVhcjogUmlrIEZhaXRoCiAgICBkZGF0ZTogRHJ1ZWwgdGhlIENoYW90aWMgYWthIEplcmVteSBKb2huc29uIGFrYSBtcHl0aG9uQGdudS5haS5taXQuZWR1LAogICAgICAgICAgIHdpdGggbW9kaWZpY2F0aW9ucyBieSBMZWUgSGFydmV5IE9zd2FsZCBTbWl0aCwgSy5TLkMuIGFuZAogICAgICAgICAgIHN1YnN0YW50aWFsIHVwZGF0ZXMgZnJvbSBSZXYuIEJyby4gTGVlIEg6LiBPOi4gU21pdGgsIEtZVFAKICAgIGRvbWFpbm5hbWU6IFBldGVyIE9yYmFlawogICAgICAgICAgICBmdHAuZGFpbWkuYWF1LmRrOi9wdWIvbGludXgvcG9lL3BvZWlnbC0xLjM3LnRhci5negogICAgZHNwbGl0OiBEYXZpZCBBcm5zdGVpbiAoYXJuc3RlaW5AbmV0Y29tLmNvbSkKICAgICAgICAgICAgZ2F0ZWtlZXBlci5kZWMuY29tOi9wdWIvdXNlbmV0L2NvbXAuc291cmNlcy5taXNjL3ZvbHVtZTQwL2RzcGxpdAogICAgZ2V0b3B0IChnZXRvcHRwcm9nKTogamh1bml4LmhjZi5qaHUuZWR1OgogICAgICAgICAgIC9wdWIvcHVibGljX2RvbWFpbl9zb2Z0d2FyZS9OZXRCU0QvdXNyL3NyYy91c3IuYmluL2dldG9wdAoJICAgcmVwbGFjZWQgYnkgZ2V0b3B0LTEuMC4zLnRhci5neiBmcm9tIEZyb2RvIExvb2lqYWFyZCwKCSAgIGZvdW5kIGF0IGh0dHA6Ly9odWl6ZW4uZGRzLm5sL35mcm9kb2wKICAgIGhvc3RpZDogTWl0Y2ggRFNvdXphIChtLmRzb3V6YUBtcmMtYXB1LmNhbS5hYy51aykKICAgICAgICAgICAgZnRwLmRhaW1pLmFhdS5kazovcHViL2xpbnV4L3BvZS9wb2VpZ2wtMS4zNy50YXIuZ3oKICAgIGhvc3RuYW1lL2Ruc2RvbWFpbm5hbWU6IFBldGVyIFRvYmlhcyA8dG9iaWFzQHNlcnZlci5ldC1pbmYuZmhvLWVtZGVuLmRlPgogICAgICAgICAgICAgIFRoaXMgdmVyc2lvbiAoMS42KSBzaG91bGQgYWxzbyBiZSBhdmFpbGFibGUgc29vbiBpbjoKICAgICAgICAgICAgICBuaWMuZnVuZXQuZmk6L3B1Yi9PUy9MaW51eC9QRU9QTEUvTGludXMvbmV0LXNvdXJjZS9iYXNlL05ldEtpdC1BKgogICAga2lsbDogQlNEIHZlcnNpb24sIG1vZGlmaWVkIGJ5IFNhbHZhdG9yZSBWYWxlbnRlIDxzdmFsZW50ZUBtaXQuZWR1PgogICAgbG9nZ2VyOiA4LjEgKEJlcmtlbGV5KSA2LzYvOTMsIHdpdGggbW9kaWZpY2F0aW9ucyBieSBSaWsgRmFpdGgKICAgICAgICAgICAgZnRwLmNkcm9tLmNvbTovcHViL2JzZC1zb3VyY2VzLzQuNEJTRC1MaXRlL3Vzci9zcmMvdXNyLmJpbgogICAgbG9vay5jOiA4LjEgKEJlcmtlbGV5KSA2LzE0LzkzLCB3aXRoIG1vZGlmaWNhdGlvbnMgYnkgUmlrIEZhaXRoCiAgICAgICAgICAgIGZ0cC5jZHJvbS5jb206L3B1Yi9ic2Qtc291cmNlcy80LjRCU0QtTGl0ZS91c3Ivc3JjL3Vzci5iaW4KICAgIG1jb29raWU6IFJpayBGYWl0aCAoZmFpdGhAY3MudW5jLmVkdSkKICAgIG1kNXN1bTogQnJhbmtpIExhbmtlc3RlciBhbmQgQ29saW4gUGx1bWIuICBUaGUgTUQ1IG1lc3NhZ2UtZGlnZXN0CiAgICAgICAgICAgIGFsZ29yaXRobSBpcyBpbiB0aGUgUHVibGljIERvbWFpbi4gIFRoaXMgaW1wbGVtZW50YXRpb24KICAgICAgICAgICAgY2FsY3VsYXRlcyBtZXNzYWdlLWRpZ2VzdCBpbmZvcm1hdGlvbiBvbmx5LCBhbmQgY2FuIE5PVCBiZSB1c2VkCiAgICAgICAgICAgIGZvciBlbmNyeXB0aW9uLiAgVGhlcmVmb3JlIGl0IGlzIGV4cG9ydGFibGUgZnJvbSB0aGUgVVNBLgogICAgICAgICAgICBPcmlnaW5hbCBzb3VyY2VzIGluIHRoZSBNSVQgdmVyc2lvbiBvZiBQR1AgMi42LjIuCiAgICBuYW1laTogUm9nZXIgUy4gU291dGh3aWNrLCB3aXRoIG1vZGlmaWNhdGlvbnMgYnkgU3RldmUgVGVsbC4KICAgIHJlc2V0OiBSaWsgRmFpdGgKICAgIHNjcmlwdDogNS4xMyAoQmVya2VsZXkpIDMvNS85MSwgd2l0aCBtb2RpZmljYXRpb25zIGJ5IFJpY2sgU2xhZGtleQogICAgICAgICAgICAoanJzQHdvcmxkLnN0ZC5jb20pLCBIYXJhbGQgS29lbmlnCiAgICAgICAgICAgIChrb2VuaWdAbm92YS50YXQucGh5c2lrLnVuaS10dWViaW5nZW4uZGUpLgogICAgc2V0dGVybTogR29yZG9uIElybGFtIChnb3Jkb25pQGNzLnVhLm96LmF1KSwgd2l0aCBtb2RpZmljYXRpb25zIGJ5CiAgICAgICAgICAgICBQZXRlciBNYWNEb25hbGQsIE1pa2EgTGlsamViZXJnIChsaWxqZWJlckBjcy5IZWxzaW5raS5GSSksCiAgICAgICAgICAgICBKb2huIFdhbGRlciAoai13YWxkZXJAdWl1Yy5lZHUpIFtmb3IgZG9zZW11XS4KICAgIHRzb3J0OiA1LjMgKEJlcmtlbGV5KSA2LzEvOTAKICAgICAgICAgICB3dWFyY2hpdmUud3VzdGwuZWR1Oi9taXJyb3JzLzQuMy1yZW5vCiAgICB3aGVyZWlzOiA1LjUgKEJlcmtlbGV5KSA0LzE4LzkxCiAgICAgICAgICAgICB3dWFyY2hpdmUud3VzdGwuZWR1Oi9taXJyb3JzLzQuMy1yZW5vCiAgICB3cml0ZTogOC4xIChCZXJrZWxleSkgNi82LzkzLCB3aXRoIG1vZGlmaWNhdGlvbnMgYnkgTWlrZSBHcnVwZW5ob2ZmCiAgICAgICAgICAgKGthc2htaXJAdW1pYWNzLnVtZC5lZHUpLiAgV2l0aCBjaGFuZ2VzIHNvIHRoYXQgZGFtYWdpbmcgZXNjYXBlCiAgICAgICAgICAgc2VxdWVuY2VzIGNhbm5vdCBiZSBzZW50LgogICAgICAgICAgIGZ0cC5jZHJvbS5jb206L3B1Yi9ic2Qtc291cmNlcy80LjRCU0QtTGl0ZS91c3Ivc3JjL3Vzci5iaW4KCgptb3VudDoKICAgIG1vdW50LCB1bW91bnQsIHN3YXBvbgoKICAgIFJpY2sgU2xhZGtleSBwdXQgdG9nZXRoZXIgdGhlIG1vdW50LTAuOTkuNi50YXIuWiBwYWNrYWdlLCBhbmQgU3RlcGhlbgogICAgVHdlZWRpZSBwcm92aWRlZCB1cGRhdGVzLiAgVGhlIHV0aWxpdGllcyB3ZXJlIG9yaWdpbmFsbHkgZnJvbSB0aGF0CiAgICBwYWNrYWdlIChhbGwgYXBwZWFyIHRvIGJlIGJ5IERvdWcgUXVhbGUgKHF1YWxlQHNhYXZpay5jcy53aXNjLmVkdSksCiAgICB3aXRoIG1vZGlmaWNhdGlvbnMgYnkgSC4gSi4gTHUgKGhsdUBlZWNzLndzdS5lZHUpIG9uIDExLzI1LzkyOyBSaWNrCiAgICBTbGFka2V5IChqcnNAd29ybGQuc3RkLmNvbSkgaW4gSmFudWFyeSAxOTkzOyBhbmQgU3RlcGhlbiBUd2VlZGllCiAgICA8c2N0QGRjcy5lZC5hYy51az4gb24gOCBPY3RvYmVyIDE5OTMuICBUaGlzIGRpc3RyaWJ1dGlvbiBtb3VudCBub3cKICAgIHN1cHBvcnRzIE5GUyBzdHVmZi4gIEkgaGF2ZSBtb2RpZmllZCB0aGUgbWFuIHBhZ2VzLiAgSSBoYXZlIGFsc28gYWRkZWQKICAgIGEgc21hbGwgcGF0Y2ggZnJvbSBIYW1pc2ggR2xlbiBDb2xlbWFuICh0OTMzMDkzQG1pbnlvcy54eC5ybWl0Lk9aLkFVKQogICAgd2hpY2ggcmVzdG9yZXMgdGhlIC1vIHNlbWFudGljcy4KICAgIAogICAgVXBkYXRlZCB3aXRoIFJpY2sgU2xhZGtleSdzIG1vdW50LTAuOTkuMTQudGFyLmd6IHBhY2thZ2UsIGFuZCB3aXRoCiAgICBleHRyYSBwYXRjaGVzIGZyb20gUmljay4gIEFkYW0gSi4gUmljaHRlciBhbGxvd2VkIC10IG9wdGlvbiB0byBiZQogICAgb3B0aW9uYWwuIFBhdHJpY2sgSi4gVm9sa2VyZGluZyAodm9sa2VyZGlAbWhkMS5tb29yaGVhZC5tc3VzLmVkdSkgYW5kCiAgICBNaXRjaHVtIERTb3V6YSBib3RoIHByb3ZpZGVkIHBhdGNoZXMgdGhhdCBmaXhlZCB0aGUgKG51bGwpIHByb2JsZW0gd2hlbgogICAgbm90IHVzaW5nIC10LiBNaXRjaHVtIERTb3V6YQogICAgKG1pdGNoQG1yYy1hcHBsaWVkLXBzeWNob2xvZ3kuY2FtYnJpZGdlLmFjLnVrKSBhZGRlZCBzdXBwb3J0IGZvciBsb29wCiAgICBkZXZpY2UgbW91bnRzLiBTZWJhc3RpYW4gTGVkZXJlcgogICAgKGxlZGVyZXJAbmV4dC1wYy5pbmZvcm1hdGlrLnVuaS1ib25uLmRlKSBhZGRlZCBzdXBwb3J0IGZvciBzZW5kaW5nIGFuCiAgICB1bm1vdW50IFJQQyBjYWxsIHRvIHRoZSBzZXJ2ZXIgd2hlbiBhbiBORlMtZmlsZXN5c3RlbSBpcyB1bm1vdW50ZWQuCiAgICBTYW5kZXIgdmFuIE1hbHNzZW4gKHN2bUBrb3ptaXguaGFja3RpYy5ubCkgYWRkZWQgc3VwcG9ydCBmb3IgcmVtb3VudGluZwogICAgcmVhZG9ubHkgZmlsZSBzeXN0ZW1zIHJlYWRvbmx5LiAgTWlrZSBHcnVwZW5ob2ZmCiAgICA8a2FzaG1pckB1bWlhY3MuVU1ELkVEVT4gYWRkZWQgYSBwcm9iZSBvZiB0aGUgc3VwZXJibG9jayBmb3IgdGhlIHR5cGUKICAgIGJlZm9yZSAvcHJvYy9maWxlc3lzdGVtcyBpcyBjaGVja2VkLiAgQW5kcmllcy5Ccm91d2VyQGN3aS5ubCBmaXhlZCB1cAogICAgZXJyb3IgcmVwb3J0aW5nLgoKICAgIFVwZGF0ZWQgd2l0aCBwYXRjaGVzIGZyb20gQW5kcmllcy5Ccm91d2VyQGN3aS5ubCBhbmQgRGFuIFF1aW5sYW4KICAgIChxdWlubGFuQHlnZ2RyYXNpbC5jb20pLiAgQW5kIG1vcmUgcGF0Y2hlcyBmcm9tIEFuZHJpZXMgYW5kIG90aGVycy4KCmhpc3RvcmljL3NlbGVjdGlvbjogVGhlIGNvbXBsZXRlIHNlbGVjdGlvbi0xLjUgcGFja2FnZSwgYnkgQW5kcmV3IEhheWxldHQKICAgIDxhamhAZ2VjLW1yYy5jby51az4sIDE3dGggSnVuZSAxOTkzLCBpcyBpbmNsdWRlZCBpbiB0aGUgaGlzdG9yaWMgdHJlZS4KICAgIEtlcm5lbCBwYXRjaGVzIGFyZSBubyBsb25nZXIgbmVjZXNzYXJ5IGZvciBtb2Rlcm4ga2VybmVscywgYnV0IHRoZXNlCiAgICB3ZXJlIHRpbnkgc28gSSBsZWZ0IHRoZW0gaW4gZm9yIGhpc3RvcmljYWwgcmVhc29ucy4gIFRoZSBNYWtlZmlsZSB3YXMKICAgIG1vZGlmaWVkIGZvciB0aGlzIGRpc3RyaWJ1dGlvbi4gIFdpdGggY2hhbmdlcyBmcm9tIFJpY2sgU2xhZGtleS4KCnN5cy11dGlsczoKICAgIGFyY2g6IFJpayBGYWl0aCA8ZmFpdGhAY3MudW5jLmVkdT4KICAgIGNocm9vdDogUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KICAgIGNsb2NrOiBPcmlnaW5hbGx5IGZyb20gdGhlIHRpbWVzcmMtMS4yLnRhci5aIHBhY2thZ2UsIENoYXJsZXMgSGVkcmljaywKICAgICAgICAgICBoZWRyaWNrQGNzLnJ1dGdlcnMuZWR1IChWMS4wKTsgUm9iIEhvb2Z0LCBob29mdEBjaGVtLnJ1dS5ubAogICAgICAgICAgIChWMS4xKTsgSGFyYWxkIEtvZW5pZyAoa29lbmlnQG5vdmEudGF0LnBoeXNpay51bmktdHVlYmluZ2VuLmRlKQogICAgICAgICAgIChWMS4yKS4gIFdpdGggYWRkaXRpb25hbCBjaGFuZ2VzOiBIYW1pc2ggQ29sZW1hbgogICAgICAgICAgIChoYW1pc2hAem90LmFwYW5hLm9yZy5hdSkgKFYxLjJhKTsgQWxhbiBNb2RyYQogICAgICAgICAgIChhbGFuQHNwcmkubGV2ZWxzLnVuaXNhLmVkdS5hdSAoVjEuMywgVjEuNCkuCiAgICBjdHJsYWx0ZGVsOiBQZXRlciBPcmJhZWsgPHBvZUBkYWltaS5hYXUuZGs+CiAgICAgICAgICAgICAgICBmdHA6Ly9mdHAuZGFpbWkuYWF1LmRrL3B1Yi9saW51eC9wb2UvYWRtdXRpbC0xLjE2LnRhci5negogICAgY3l0dW5lOiBOaWNrIFNpbWljaXNoIChuanNAc2NpZmkuZW1pLm5ldCkgYW5kIFJpayBGYWl0aCAoZmFpdGhAY3MudW5jLmVkdSkKICAgIGRtZXNnOiBUaGVvZG9yZSBUcydvICh0eXRzb0BhdGhlbmEubWl0LmVkdSk7IFJpY2sgU2xhZGtleQogICAgICAgICAgIChqcnNAd29ybGQuc3RkLmNvbSkKICAgIGlwY3JtOiBGcm9tIHRoZSBpcGNkZWx0YS50YXIueiBkaXN0cmlidXRpb24gYnkga3Jpc2huYQogICAgICAgICAgIGJhbGFzdWJAY2lzLm9oaW8tc3RhdGUuZWR1IG9uIDMvMTUvOTMuICBpcGMuaW5mbyBhbmQgaXBjLnRleGkKICAgICAgICAgICBhcmUgYWxzbyBmcm9tIHRoYXQgZGlzdHJpYnV0aW9uLgogICAgaXBjczogQWxzbyBmcm9tIHRoZSBpcGNkZWx0YS50YXIueiBkaXN0cmlidXRpb24gYnkga3Jpc2huYQogICAgICAgICAgYmFsYXN1YkBjaXMub2hpby1zdGF0ZS5lZHUsIHdpdGggcGF0Y2hlcyBmcm9tIE1pa2UgSmFnZGlzCiAgICAgICAgICAoamFnZ3lAcHVycGxldC5kZW1vbi5jby51aykKICAgIGtiZHJhdGU6IFJpayBGYWl0aCAoZmFpdGhAY3MudW5jLmVkdSksIHdpdGggcGF0Y2hlcyBmcm9tCiAgICAgICAgICAgICBBbmRyaWVzLkJyb3V3ZXJAY3dpLm5sIGFuZCBKb2huIEJvd21hbgogICAgICAgICAgICAgKGJvd21hbkBoYWdhci5waC51dGV4YXMuZWR1KQogICAga3N5bW9vcHM6IDEuNyBmcm9tIEdyZWcgTWNHYXJ5IDxna21AbWFnaWxsYS5jaWNobGlkLmNvbT4KICAgIHJkZXY6IGFsbWVzYmVyQG5lc3NpZS5jcy5pZC5ldGh6LmNoIChXZXJuZXIgQWxtZXNiZXJnZXIpLCB3aXRoCiAgICAgICAgICBtb2RpZmljYXRpb25zIGZyb20gUGV0ZXIgTWFjRG9uYWxkLCBTdGVwaGVuIFR3ZWVkaWUKICAgICAgICAgIChzY3RAZGNzLmVkLmFjLnVrKSwgYW5kIERhdmUgKGdlbnR6ZWxAbm92YS5lbmV0LmRlYy5jb20pCiAgICByZWFkcHJvZmlsZTogQWxlc3NhbmRybyBSdWJpbmkgZnJvbSByZWFkcHJvZmlsZS0yLjAudGFyLmd6CiAgICByZW5pY2U6IDguMSAoQmVya2VsZXkpIDYvOS85MwogICAgICAgICAgICBmdHAuY2Ryb20uY29tOi9wdWIvYnNkLXNvdXJjZXMvNC40QlNELUxpdGUvdXNyL3NyYy91c3IuYmluCiAgICBzZXRzZXJpYWw6IE1pY2hhZWwgSy4gSm9obnNvbiAoam9obnNvbm1Ac3RvbGFmLmVkdSkgcmUtcmVsZWFzZWQgUmljawogICAgICAgICAgICAgICBTbGFka2V5J3Mgc2V0c2VyaWFsIGluIEphbnVhcnkgMTk5Mywgd2l0aCBjaGFuZ2VzIGJ5CiAgICAgICAgICAgICAgIFRoZW9kb3JlIFRzJ28gKHR5dHNvQG1pdC5lZHUpLiAgSSB0aGluayB0aGF0IFRoZW9kb3JlIGFsc28KICAgICAgICAgICAgICAgZGlkIGV4dGVuc2l2ZSBjaGFuZ2VzIGZvciB2ZXJzaW9uIDIuMDEsIEkgY2FuJ3QgZmluZCBhbnkKICAgICAgICAgICAgICAgbm90ZXMgYWJvdXQgdGhpcyBpbiB0aGUgZG9jdW1lbnRhdGlvbi4gSG93ZXZlciwgVGhlb2RvcmUKICAgICAgICAgICAgICAgVHMnbyAodHl0c29AQVRIRU5BLk1JVC5FRFUpIHJlbGVhc2VkIHZlcnNpb24gMi4xMCwgYW5kIHRoYXQKICAgICAgICAgICAgICAgaXMgbm93IGluY2x1ZGVkLgogICAgc2V0c2lkOiBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgogICAgc2xuOiBNaWtlIFBhcmtlciBhbmQgRGF2aWQgTWFjS2VuemllIChmcm9tIExpbnV4J3MgbGliYykKICAgIHN5bmM6IE5pY2sgSG9sbG93YXksIHdpdGggdGhhbmtzIHRvIEphbWVzIEJvbmZpZWxkCiAgICB0dW5lbHA6IE1pY2hhZWwgSy4gSm9obnNvbiAoam9obnNvbm1AbmlnZWwudm5ldC5uZXQpCgoKc3lzbG9nZDoKICAgNS40NSAoQmVya2VsZXkpIDMvMi85MQoKICAgTW9zdCBvZiB0aGUgY2hhbmdlcyBmb3Igc3lzbG9nZCBjb21lIGZyb20gUmljayBTbGFka2V5CiAgIChqcnNAd29ybGQuc3RkLmNvbSksIGJ1dCBJJ2QgbGlrZSB0byB0aGFuayBvdGhlciBwZW9wbGUgd2hvIHNlbnQgaW4KICAgY2hhbmdlcyAod2hpY2ggdXN1YWxseSBnb3QgZm9yd2FyZGVkIHRvIFJpY2spOiBDYXJzdGVuIFBhZXRoCiAgIChjYWxsZUBjYWxsZS5pbi1iZXJsaW4uZGUpIGFuZCBLYXogU2FzYXlhbWEgKGthekBsaWxpYS5paWpuZXQub3IuanApLgoKdGV4dC11dGlsczoKICAgIGNvbDogNS4zIChCZXJrZWxleSkgMi8yLzkxOyB3aXRoIHBhdGNoZXMgZnJvbSBBbmRyaWVzLkJyb3V3ZXJAY3dpLm5sCiAgICAgICAgIGFuZCBDYXJsIENocmlzdG9mZmVyc29uIChjY2hyaXNAY29ubmVjdGVkLmNvbSkKICAgICAgICAgd3VhcmNoaXZlLnd1c3RsLmVkdTovbWlycm9ycy80LjMtcmVuby97YmluLHVzci5iaW59CiAgICBjb2xjcnQ6IDguMSAoQmVya2VsZXkpIDYvNi85MyAoQmlsbCBKb3kpCiAgICAgICAgICAgIGZ0cC5jZHJvbS5jb206L3B1Yi9ic2Qtc291cmNlcy80LjRCU0QtTGl0ZS91c3Ivc3JjL3Vzci5iaW4KICAgIGNvbHJtOiA1LjQgKEJlcmtlbGV5KSA2LzEvOTAgKEplZmYgU2NocmllYm1hbikKICAgIGNvbHVtbjogOC4zIChCZXJrZWxleSkgNC8yLzk0CiAgICAgICAgICAgIGZ0cC5jZHJvbS5jb206L3B1Yi9ic2Qtc291cmNlcy80LjRCU0QtTGl0ZS91c3Ivc3JjL3Vzci5iaW4KICAgIGhleGR1bXA6IDUuNSAoQmVya2VsZXkpIDYvMS85MAogICAgICAgICAgICAgd3VhcmNoaXZlLnd1c3RsLmVkdTovbWlycm9ycy80LjMtcmVuby97YmluLHVzci5iaW59CiAgICBtb3JlOiA1LjE5IChCZXJrZWxleSkgNi8yOS84OCAoRXJpYyBTaGllbmJyb29kLCBHZW9mZiBQZWNrLCBKb2huIEZvZGVyYXJvKQogICAgcmV2OiA1LjIgKEJlcmtlbGV5KSAzLzIxLzkyOyB3aXRoIG1vZGlmaWNhdGlvbnMgYnkgQ2hhcmxlcyBIYW5udW0KICAgICAgICAgKG15Y3JvZnRAZ251LmFpLm1pdC5lZHUpLCBCcmlhbiBLb2VobXN0ZWR0IChicGtAZ251LmFpLm1pdC5lZHUpLAogICAgICAgICBiamRvdW1hQHhzNGFsbC5ubAogICAgICAgICB3dWFyY2hpdmUud3VzdGwuZWR1Oi9taXJyb3JzLzQuMy1yZW5vL3tiaW4sdXNyLmJpbn0KICAgIHN0cmluZ3M6IDUuMTAgKEJlcmtlbGV5KSA1LzIzLzkxOyB3aXRoIHBhdGNoZXMgZnJvbSBWaXRvciBEdWFydGUKICAgICAgICAgICAgIDx2YWRAZmN0LnVubC5wdD4KICAgICAgICAgICAgIHd1YXJjaGl2ZS53dXN0bC5lZHU6L21pcnJvcnMvNC4zLXJlbm8ve2Jpbix1c3IuYmlufQogICAgdWw6IDguMSAoQmVya2VsZXkpIDYvNi85MwogICAgICAgIGZ0cC5jZHJvbS5jb206L3B1Yi9ic2Qtc291cmNlcy80LjRCU0QtTGl0ZS91c3Ivc3JjL3Vzci5iaW4KCg==