ZGlmZiAtLWdpdCBhL29zcGY2ZC9PU1BGVjMtTUlCLnR4dCBiL29zcGY2ZC9PU1BGVjMtTUlCLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZTY2Y2ZmCi0tLSAvZGV2L251bGwKKysrIGIvb3NwZjZkL09TUEZWMy1NSUIudHh0CkBAIC0wLDAgKzEsMjc1OCBAQAorT1NQRlYzLU1JQiBERUZJTklUSU9OUyA6Oj0gQkVHSU4gCisgCitJTVBPUlRTIAorICAgICAgICBNT0RVTEUtSURFTlRJVFksIE9CSkVDVC1UWVBFLCBtaWItMiwgCisgICAgICAgIENvdW50ZXIzMiwgR2F1Z2UzMiwgSW50ZWdlcjMyLCBJcEFkZHJlc3MsIAorICAgICAgICBVbnNpZ25lZDMyIAorICAgICAgICAgICAgICAgIEZST00gU05NUHYyLVNNSSAKKyAgICAgICAgVEVYVFVBTC1DT05WRU5USU9OLCBUcnV0aFZhbHVlLCBTdG9yYWdlVHlwZSwgUm93U3RhdHVzIAorICAgICAgICAgICAgICAgIEZST00gU05NUHYyLVRDIAorICAgICAgICBNT0RVTEUtQ09NUExJQU5DRSwgT0JKRUNULUdST1VQIAorICAgICAgICAgICAgICAgIEZST00gU05NUHYyLUNPTkYgCisgICAgICAgIEludGVyZmFjZUluZGV4IAorICAgICAgICAgICAgICAgIEZST00gSUYtTUlCIAorICAgICAgICBJbmV0QWRkcmVzc1R5cGUsIEluZXRBZGRyZXNzLCBJbmV0QWRkcmVzc1ByZWZpeExlbmd0aCAKKyAgICAgICAgICAgICAgICBGUk9NIElORVQtQUREUkVTUy1NSUIgCisgICAgICAgIEFyZWFJRCwgUm91dGVySUQsIE1ldHJpYywgQmlnTWV0cmljLCBTdGF0dXMsICAKKyAgICAgICAgSGVsbG9SYW5nZSwgRGVzaWduYXRlZFJvdXRlclByaW9yaXR5IAorICAgICAgICAgICAgICAgIEZST00gT1NQRi1NSUI7IAorCitvc3BmdjNNSUIgTU9EVUxFLUlERU5USVRZIAorICAgICAgICBMQVNULVVQREFURUQgIjIwMDQwNDA4MTIwMFoiIAorICAgICAgICBPUkdBTklaQVRJT04gIklFVEYgT1NQRiBXb3JraW5nIEdyb3VwIiAKKyAgICAgICAgQ09OVEFDVC1JTkZPIAorICAgICAgICAgICAgIldHIEUtTWFpbDogb3NwZkBwZWFjaC5lYXNlLmxzb2Z0LmNvbSAKKyAgICAgICAgICAgICBXRyBDaGFpcnM6IEpvaG4uTW95QHN5Y2Ftb3JlbmV0LmNvbSAgIAorICAgICAgICAgICAgICAgICAgICAgICAgYWNlZUByZWRiYWNrLmNvbSAKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvaGl0QHhlYmVvLmNvbSAKKyAKKyAgICAgICAgICAgICBEYW4gSm95YWwgCisgICAgICAgICAgICAgTm9ydGVsIE5ldHdvcmtzIAorICAgICAgICAgICAgIDYwMCBUZWNobm9sb2d5IFBhcmsgRHJpdmUgCisgICAgICAgICAgICAgQmlsbGVyaWNhLCBNQSAgMDE4MjEsIFVTQSAKKyAgICAgICAgICAgICBkam95YWxAbm9ydGVsbmV0d29ya3MuY29tIAorIAorICAgICAgICAgICAgIFZpc2h3YXMgTWFucmFsIAorICAgICAgICAgICAgIFNpTmV0dCBDb3Jwb3JhdGlvbiAKKyAgICAgICAgICAgICAyLzEsIEZpcnN0IEZsb29yIAorICAgICAgICAgICAgIEVtYmFzc3kgSWNvbiBBbm5leCAKKyAgICAgICAgICAgICBJbmZhbnRyeSBSb2FkIAorICAgICAgICAgICAgIEJhbmdhbG9yZSA1NjAwMDEgCisgICAgICAgICAgICAgdmlzaHdhc0BzaW5ldHQuY29tIiAKKyAKKyAgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgICJUaGUgTUlCIG1vZHVsZSB0byBkZXNjcmliZSBPU1BGIHZlcnNpb24gMyIgCisgICAgICAgICBSRVZJU0lPTiAiMjAwNDA0MDgxMjAwWiIgCisgICAgICAgICBERVNDUklQVElPTiAtLSBSRkMgRWRpdG9yIGFzc2lnbnMgUkZDIHh4eHggCisgICAgICAgICAgICAgIkluaXRpYWwgdmVyc2lvbiwgcHVibGlzaGVkIGFzIFJGQyB4eHh4IiAKKyAgICAgICAgIDo6PSB7IG1pYi0yIHh4IH0gLS0gSUFOQSBhc3NpZ25zIHh4IAorIAorLS0gVGV4dWFsIGNvbnZlbnRpb25zIAorIAorVXBUb1JlZnJlc2hJbnRlcnZhbCA6Oj0gVEVYVFVBTC1DT05WRU5USU9OIAorICAgICAgICAgU1RBVFVTICAgICAgICBjdXJyZW50IAorICAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIHZhbHVlcyBvbmUgbWlnaHQgYmUgYWJsZSB0byBjb25maWd1cmUgZm9yICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB2YXJpYWJsZXMgYm91bmRlZCBieSB0aGUgUmVmcmVzaCBJbnRlcnZhbCIgCisgICAgICAgICBTWU5UQVggICAgICAgIEludGVnZXIzMiAoMS4uMTgwMCkgCisgCitSb3V0ZXJEZWFkUmFuZ2UgOjo9IFRFWFRVQUwtQ09OVkVOVElPTiAKKyAgICAgICAgIFNUQVRVUyAgICAgICAgY3VycmVudCAKKyAgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSByYW5nZSBvZiBpbnRlcnZhbHMgaW4gc2Vjb25kcyB0aGF0IGEgcm91dGVycyBoZWxsbyAKKyAgICAgICAgICAgIG11c3QgaGF2ZSBub3QgYmVlbiBzZWVuIGJlZm9yZSBhIG5laWdoYm9yIGRlY2xhcmVzIHRoZSAKKyAgICAgICAgICAgIHJvdXRlciBkb3duIiAKKyAgICAgICAgIFNZTlRBWCAgICAgICAgSW50ZWdlcjMyICgxLi7GRkZGRsZoKSAKKworIAorLS0gVG9wLWxldmVsIHN0cnVjdHVyZSBvZiBNSUIgCitvc3BmdjNPYmplY3RzICAgICAgICBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyBvc3BmdjNNSUIgMSB9IAorb3NwZnYzQ29uZm9ybWFuY2UgICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgb3NwZnYzTUlCIDIgfSAKKyAKKy0tIE9TUEZ2MyBHZW5lcmFsIFZhcmlhYmxlcyAKKyAKKy0tIFRoZXNlIHBhcmFtZXRlcnMgYXBwbHkgZ2xvYmFsbHkgdG8gdGhlIFJvdXRlcidzIAorLS0gT1NQRnYzIFByb2Nlc3MuIAorIAorb3NwZnYzR2VuZXJhbEdyb3VwIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IG9zcGZ2M09iamVjdHMgMSB9IAorIAorb3NwZnYzUm91dGVySWQgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgIFJvdXRlcklEIAorICAgICAgICBNQVgtQUNDRVNTICAgICByZWFkLXdyaXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJBICAzMi1iaXQgIGludGVnZXIgIHVuaXF1ZWx5ICBpZGVudGlmeWluZyAgdGhlIAorICAgICAgICAgICAgcm91dGVyIGluIHRoZSBBdXRvbm9tb3VzIFN5c3RlbS4gCisgICAgICAgICAgICBUbyAgZW5zdXJlICB1bmlxdWVuZXNzLCB0aGlzIG1heSAKKyAgICAgICAgICAgIGRlZmF1bHQgIHRvICB0aGUgIHZhbHVlICBvZiAgb25lIG9mIHRoZSAKKyAgICAgICAgICAgIHJvdXRlcidzIElQdjQgaW50ZXJmYWNlIGFkZHJlc3NlcyBpZiBJUHY0IGlzIAorICAgICAgICAgICAgY29uZmlndXJlZCBvbiB0aGUgcm91dGVyLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0dlbmVyYWxHcm91cCAxIH0gCisgCitvc3BmdjNBZG1pblN0YXQgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBTdGF0dXMgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLXdyaXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlICBhZG1pbmlzdHJhdGl2ZSAgc3RhdHVzICBvZiAgT1NQRnYzICBpbiAgdGhlIAorICAgICAgICAgICAgcm91dGVyLiAgIFRoZSAgdmFsdWUgJ2VuYWJsZWQnIGRlbm90ZXMgdGhhdCB0aGUgCisgICAgICAgICAgICBPU1BGdjMgUHJvY2VzcyBpcyBhY3RpdmUgb24gYXQgbGVhc3QgIG9uZSAgaW50ZXItIAorICAgICAgICAgICAgZmFjZTsgICdkaXNhYmxlZCcgIGRpc2FibGVzICBpdCAgb24gIGFsbCBpbnRlci0gCisgICAgICAgICAgICBmYWNlcy4iIAorICAgICAgICA6Oj0geyBvc3BmdjNHZW5lcmFsR3JvdXAgMiB9IAorIAorb3NwZnYzVmVyc2lvbk51bWJlciBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIElOVEVHRVIgeyB2ZXJzaW9uMygzKSB9IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIHZlcnNpb24gbnVtYmVyIG9mIE9TUEYgZm9yIElQdjYgaXMgMy4iIAorICAgICAgICA6Oj0geyBvc3BmdjNHZW5lcmFsR3JvdXAgMyB9IAorIAorb3NwZnYzQXJlYUJkclJ0clN0YXR1cyBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFRydXRoVmFsdWUgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJBIGZsYWcgdG8gbm90ZSB3aGV0aGVyIHRoaXMgcm91dGVyIGlzIGFuICBhcmVhIAorICAgICAgICAgICAgYm9yZGVyIHJvdXRlci4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uIDIsIFNlY3Rpb24gMyBTcGxpdHRpbmcgdGhlIEFTIGludG8gCisgICAgICAgICAgICBBcmVhcyIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0dlbmVyYWxHcm91cCA0IH0gCisgCitvc3BmdjNBU0JkclJ0clN0YXR1cyBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFRydXRoVmFsdWUgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLXdyaXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiQSBmbGFnIHRvIG5vdGUgd2hldGhlciB0aGlzIHJvdXRlciBpcyAgY29uZmlnLSAKKyAgICAgICAgICAgIHVyZWQgYXMgYW4gQXV0b25vbW91cyBTeXN0ZW0gYm9yZGVyIHJvdXRlci4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uIDIsIFNlY3Rpb24gMy4zICBDbGFzc2lmaWNhdGlvbiAgb2YgCisgICAgICAgICAgICByb3V0ZXJzIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzR2VuZXJhbEdyb3VwIDUgfSAKKyAKK29zcGZ2M0FzU2NvcGVMc2FDb3VudCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEdhdWdlMzIgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIEFTLVNjb3BlIChlLmcuIEFTLUV4dGVybmFsKSBsaW5rLXN0YXRlIAorICAgICAgICAgICAgYWR2ZXJ0aXNlbWVudHMgaW4gdGhlIGxpbmstc3RhdGUgZGF0YWJhc2UuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzR2VuZXJhbEdyb3VwIDYgfSAKKyAKK29zcGZ2M0FzU2NvcGVMc2FDa3N1bVN1bSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEludGVnZXIzMiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSAzMi1iaXQgdW5zaWduZWQgc3VtIG9mIHRoZSBMUyBjaGVja3N1bXMgb2YgCisgICAgICAgICAgICB0aGUgIEFTLXNjb3BlZCBsaW5rLXN0YXRlIGFkdmVydGlzZW1lbnRzICBjb24tIAorICAgICAgICAgICAgdGFpbmVkIGluIHRoZSBsaW5rLXN0YXRlIGRhdGFiYXNlLiBUaGlzIHN1bSAKKyAgICAgICAgICAgIGNhbiAgYmUgIHVzZWQgIHRvIGRldGVybWluZSBpZiB0aGVyZSBoYXMgYmVlbiBhIAorICAgICAgICAgICAgY2hhbmdlIGluIGEgcm91dGVyJ3MgbGluayBzdGF0ZSAgZGF0YWJhc2UsICBhbmQgCisgICAgICAgICAgICB0byAgY29tcGFyZSAgdGhlICBsaW5rLXN0YXRlICBkYXRhYmFzZSAgb2YgIHR3byAKKyAgICAgICAgICAgIHJvdXRlcnMuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzR2VuZXJhbEdyb3VwIDcgfSAKKyAKK29zcGZ2M09yaWdpbmF0ZU5ld0xzYXMgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBDb3VudGVyMzIgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mICBuZXcgIGxpbmstc3RhdGUgIGFkdmVydGlzZW1lbnRzIAorICAgICAgICAgICAgdGhhdCAgaGF2ZSBiZWVuIG9yaWdpbmF0ZWQuICBUaGlzIG51bWJlciBpcyBpbi0gCisgICAgICAgICAgICBjcmVtZW50ZWQgZWFjaCB0aW1lIHRoZSByb3V0ZXIgb3JpZ2luYXRlcyBhIG5ldyAKKyAgICAgICAgICAgIExTQS4iIAorICAgICAgICA6Oj0geyBvc3BmdjNHZW5lcmFsR3JvdXAgOCB9IAorIAorb3NwZnYzUnhOZXdMc2FzIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgQ291bnRlcjMyIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiAgbGluay1zdGF0ZSAgYWR2ZXJ0aXNlbWVudHMgIHJlLSAKKyAgICAgICAgICAgIGNlaXZlZCAgZGV0ZXJtaW5lZCAgdG8gIGJlICBuZXcgaW5zdGFudGlhdGlvbnMuIAorICAgICAgICAgICAgVGhpcyBudW1iZXIgZG9lcyBub3QgaW5jbHVkZSAgbmV3ZXIgIGluc3RhbnRpYS0gCisgICAgICAgICAgICB0aW9ucyAgb2Ygc2VsZi1vcmlnaW5hdGVkIGxpbmstc3RhdGUgYWR2ZXJ0aXNlLSAKKyAgICAgICAgICAgIG1lbnRzLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0dlbmVyYWxHcm91cCA5IH0gCisgCitvc3BmdjNFeHRMc2FDb3VudCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEdhdWdlMzIgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIEV4dGVybmFsKExTIHR5cGUgMHg0MDA1KSBpbiB0aGUgbGluay0KKyAgICAgICAgICAgIHN0YXRlIGRhdGFiYXNlIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzR2VuZXJhbEdyb3VwIDEwIH0gCisgCisgCitvc3BmdjNFeHRBcmVhTHNkYkxpbWl0IE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSW50ZWdlcjMyICgtMS4uJzdGRkZGRkZGJ2gpIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC13cml0ZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSAgbWF4aW11bSAgIG51bWJlciAgIG9mICAgbm9uLWRlZmF1bHQgICBBUy0gCisgICAgICAgICAgICBleHRlcm5hbC1MU0FzIGVudHJpZXMgdGhhdCBjYW4gYmUgc3RvcmVkIGluIHRoZSAKKyAgICAgICAgICAgIGxpbmstc3RhdGUgZGF0YWJhc2UuICBJZiB0aGUgdmFsdWUgaXMgLTEsIHRoZW4gCisgICAgICAgICAgICB0aGVyZSBpcyBubyBsaW1pdC4gCisgCisgICAgICAgICAgICBXaGVuIHRoZSBudW1iZXIgb2Ygbm9uLWRlZmF1bHQgQVMtZXh0ZXJuYWwtTFNBcyAKKyAgICAgICAgICAgIGluICAgYSAgcm91dGVyJ3MgIGxpbmstc3RhdGUgIGRhdGFiYXNlICByZWFjaGVzIAorICAgICAgICAgICAgb3NwZnYzRXh0QXJlYUxzZGJMaW1pdCwgdGhlIHJvdXRlciAgZW50ZXJzICBPdmVyZmxvdy0gCisgICAgICAgICAgICBTdGF0ZS4gICBUaGUgICByb3V0ZXIgIG5ldmVyICBob2xkcyAgbW9yZSAgdGhhbiAKKyAgICAgICAgICAgIG9zcGZ2M0V4dEFyZWFMc2RiTGltaXQgIG5vbi1kZWZhdWx0ICBBUy1leHRlcm5hbC1MU0FzIAorICAgICAgICAgICAgaW4gIGl0cyAgZGF0YWJhc2UuIE9zcGZFeHRBcmVhTHNkYkxpbWl0IE1VU1QgYmUgc2V0IAorICAgICAgICAgICAgaWRlbnRpY2FsbHkgaW4gYWxsIHJvdXRlcnMgYXR0YWNoZWQgdG8gdGhlIE9TUEZ2MyAKKyAgICAgICAgICAgIGJhY2tib25lICBhbmQvb3IgIGFueSByZWd1bGFyIE9TUEZ2MyBhcmVhLiAoaS5lLiwgCisgICAgICAgICAgICBPU1BGdjMgc3R1YiBhcmVhcyBhbmQgTlNTQXMgYXJlIGV4Y2x1ZGVkKS4iIAorICAgICAgICA6Oj0geyBvc3BmdjNHZW5lcmFsR3JvdXAgMTEgfSAKKyAKK29zcGZ2M011bHRpY2FzdEV4dGVuc2lvbnMgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBCSVRTIHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRyYUFyZWFNdWx0aWNhc3QoMCksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJBcmVhTXVsdGljYXN0KDEpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVyQXNNdWx0aWNhc3QoMikgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLXdyaXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiQSBCaXQgTWFzayBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHJvdXRlciBpcyAKKyAgICAgICAgICAgIGZvcndhcmRpbmcgSVB2NiBtdWx0aWNhc3QgZGF0YWdyYW1zIAorICAgICAgICAgICAgYmFzZWQgb24gdGhlIGFsZ29yaXRobXMgZGVmaW5lZCBpbiB0aGUgIE11bHRpLSAKKyAgICAgICAgICAgIGNhc3QgRXh0ZW5zaW9ucyB0byBPU1BGLiAKKyAKKyAgICAgICAgICAgIElmIGludHJhQXJlYU11bHRpY2FzdCBzZXQsIGluZGljYXRlcyB0aGF0IHRoZSByb3V0ZXIgCisgICAgICAgICAgICBjYW4gZm9yd2FyZCAgSVB2NiBtdWx0aWNhc3QgZGF0YWdyYW1zIGluIHRoZSByb3V0ZXIncyAKKyAgICAgICAgICAgIGRpcmVjdGx5IGF0dGFjaGVkIGFyZWFzIChjYWxsZWQgaW50cmEtYXJlYSBtdWwtIAorICAgICAgICAgICAgdGljYXN0IHJvdXRpbmcpLiAKKyAKKyAgICAgICAgICAgIElmIGludGVyQXJlYU11bHRpY2FzdCBzZXQsIGluZGljYXRlcyB0aGF0IHRoZSByb3V0ZXIgCisgICAgICAgICAgICBjYW4gZm9yd2FyZCBJUHY2IG11bHRpY2FzdCBkYXRhZ3JhbXMgYmV0d2VlbiBPU1BGdjMgCisgICAgICAgICAgICBhcmVhcyAoY2FsbGVkIGludGVyLWFyZWEgbXVsdGljYXN0IHJvdXRpbmcpLiAKKyAKKyAgICAgICAgICAgIElmIGludGVyQXNNdWx0aWNhc3Qgc2V0LCBpbmRpY2F0ZXMgdGhhdCB0aGUgcm91dGVyIGNhbiAKKyAgICAgICAgICAgIGZvcndhcmQgIElQdjYgIG11bHRpY2FzdCBkYXRhZ3JhbXMgYmV0d2VlbiBBdXRvLSAKKyAgICAgICAgICAgIG5vbW91cyBTeXN0ZW1zIChjYWxsZWQgaW50ZXItQVMgbXVsdGljYXN0IHJvdXQtIAorICAgICAgICAgICAgaW5nKS4gCisgCisgICAgICAgICAgICBPbmx5IGNlcnRhaW4gY29tYmluYXRpb25zIG9mIGJpdCBzZXR0aW5ncyBhcmUgCisgICAgICAgICAgICBhbGxvd2VkLCBuYW1lbHk6IAorICAgICAgICAgICAgICAgICAgICAtIEFsbCBiaXRzIGNsZWFyZWQgKG5vIG11bHRpY2FzdGluZykgCisgICAgICAgICAgICAgICAgICAgIC0gaW50cmFBcmVhTXVsdGljYXN0IG9ubHksIAorICAgICAgICAgICAgICAgICAgICAtIGludHJhQXJlYU11bHRpY2FzdCBhbmQgaW50ZXJBcmVhTXVsdGljYXN0LCAKKyAgICAgICAgICAgICAgICAgICAgLSBpbnRyYUFyZWFNdWx0aWNhc3QgYW5kIGludGVyQXNNdWx0aWNhc3QgCisgICAgICAgICAgICAgICAgICAgIC0gaW50cmFBcmVhTXVsdGljYXN0LCBpbnRlckFyZWFNdWx0aWNhc3QgYW5kIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVyQXNNdWx0aWNhc3QgCisgICAgICAgICAgICBCeSBkZWZhdWx0LCBhbGwgYml0cyBhcmUgY2xlYXJlZC4iIAorICAgICAgICA6Oj0geyBvc3BmdjNHZW5lcmFsR3JvdXAgMTIgfSAKKyAKK29zcGZ2M0V4aXRPdmVyZmxvd0ludGVydmFsIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgVW5zaWduZWQzMiAKKyAgICAgICAgVU5JVFMgICAgICAgICAgICJzZWNvbmRzIiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtd3JpdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mICBzZWNvbmRzICB0aGF0LCAgYWZ0ZXIgIGVudGVyaW5nIAorICAgICAgICAgICAgT3ZlcmZsb3dTdGF0ZSwgIGEgIHJvdXRlciB3aWxsIGF0dGVtcHQgdG8gbGVhdmUgCisgICAgICAgICAgICBPdmVyZmxvd1N0YXRlLiBUaGlzIGFsbG93cyB0aGUgcm91dGVyIHRvICBhZ2FpbiAKKyAgICAgICAgICAgIG9yaWdpbmF0ZSAgbm9uLWRlZmF1bHQgIEFTLUV4dGVybmFsLUxTQXMuICBXaGVuIAorICAgICAgICAgICAgc2V0IHRvIDAsIHRoZSByb3V0ZXIgd2lsbCBub3QgIGxlYXZlICBPdmVyZmxvdy0gCisgICAgICAgICAgICBTdGF0ZSB1bnRpbCByZXN0YXJ0ZWQuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzR2VuZXJhbEdyb3VwIDEzIH0gCisgCitvc3BmdjNEZW1hbmRFeHRlbnNpb25zIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICBUcnV0aFZhbHVlIAorICAgICAgICBNQVgtQUNDRVNTICAgICByZWFkLXdyaXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgcm91dGVyJ3Mgc3VwcG9ydCBmb3IgZGVtYW5kIHJvdXRpbmcuIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAyLCBBcHBlbmRpeCBvbiBEZW1hbmQgUm91dGluZyIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0dlbmVyYWxHcm91cCAxNCB9IAorIAorb3NwZnYzVHJhZmZpY0VuZ2luZWVyaW5nU3VwcG9ydCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFRydXRoVmFsdWUgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLXdyaXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIHJvdXRlcidzIHN1cHBvcnQgZm9yIHRyYWZmaWMgZW5naW5lZXJpbmcgCisgICAgICAgICAgICBleHRlbnNpb25zLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0dlbmVyYWxHcm91cCAxNSB9IAorIAorb3NwZnYzUmVmZXJlbmNlQmFuZHdpZHRoIE9CSkVDVC1UWVBFICAKKyAgICAgICBTWU5UQVggICAgICAgVW5zaWduZWQzMiAgCisgICAgICAgTUFYLUFDQ0VTUyAgIHJlYWQtd3JpdGUgIAorICAgICAgIFNUQVRVUyAgICAgICBjdXJyZW50ICAKKyAgICAgICBERVNDUklQVElPTiAgCisgICAgICAgICAgIlJlZmVyZW5jZSBiYW5kd2lkdGggaW4ga2lsb2JpdHMvc2Vjb25kIGZvciAgCisgICAgICAgICAgY2FsY3VsYXRpbmcgZGVmYXVsdCBpbnRlcmZhY2UgbWV0cmljcy4gVGhlICAKKyAgICAgICAgICBkZWZhdWx0IHZhbHVlIGlzIDEwMCwwMDAgS0JQUyAoMTAwIE1CUFMpIiAgCisgICAgOjo9IHsgb3NwZnYzR2VuZXJhbEdyb3VwIDE2IH0gCisgCitvc3BmdjNSZXN0YXJ0U3VwcG9ydCBPQkpFQ1QtVFlQRSAgCisgICAgICAgU1lOVEFYICAgICAgIElOVEVHRVIgeyBub25lICgxKSwgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhbm5lZE9ubHkgKDIpLCAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFubmVkQW5kVW5wbGFubmVkICgzKSAgCisgICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICBNQVgtQUNDRVNTICAgcmVhZC13cml0ZSAgCisgICAgICAgU1RBVFVTICAgICAgIGN1cnJlbnQgIAorICAgICAgIERFU0NSSVBUSU9OICAKKyAgICAgICAgICAiVGhlIHJvdXRlcidzIHN1cHBvcnQgZm9yIE9TUEYgaGl0bGVzcyByZXN0YXJ0LiAgCisgICAgICAgICAgT3B0aW9ucyBpbmNsdWRlOiBubyByZXN0YXJ0IHN1cHBvcnQsIG9ubHkgcGxhbm5lZCAgCisgICAgICAgICAgcmVzdGFydHMgb3IgYm90aCBwbGFubmVkIGFuZCB1bnBsYW5uZWQgcmVzdGFydHMuIiAgCisgICAgICAgOjo9IHsgb3NwZnYzR2VuZXJhbEdyb3VwIDE3IH0gIAorICAgIAorb3NwZnYzUmVzdGFydEludGVydmFsIE9CSkVDVC1UWVBFICAKKyAgICAgICBTWU5UQVggICAgICAgVXBUb1JlZnJlc2hJbnRlcnZhbCAKKyAgICAgICBVTklUUyAgICAgICAgInNlY29uZHMiICAKKyAgICAgICBNQVgtQUNDRVNTICAgcmVhZC13cml0ZSAgCisgICAgICAgU1RBVFVTICAgICAgIGN1cnJlbnQgIAorICAgICAgIERFU0NSSVBUSU9OICAKKyAgICAgICAgICAiQ29uZmlndXJlZCBPU1BGIGhpdGxlc3MgcmVzdGFydCB0aW1lb3V0IGludGVydmFsLiIgIAorICAgICAgIDo6PSB7IG9zcGZ2M0dlbmVyYWxHcm91cCAxOCB9ICAKKyAgICAKK29zcGZ2M1Jlc3RhcnRTdGF0dXMgT0JKRUNULVRZUEUgIAorICAgICAgIFNZTlRBWCAgICAgICBJTlRFR0VSIHsgbm90UmVzdGFydGluZyAoMSksICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYW5uZWRSZXN0YXJ0ICgyKSwgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5wbGFubmVkUmVzdGFydCAoMykgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gIAorICAgICAgIE1BWC1BQ0NFU1MgICByZWFkLW9ubHkgIAorICAgICAgIFNUQVRVUyAgICAgICBjdXJyZW50ICAKKyAgICAgICBERVNDUklQVElPTiAgCisgICAgICAgICAgIkN1cnJlbnQgc3RhdHVzIG9mIE9TUEYgaGl0bGVzcyByZXN0YXJ0LiIgIAorICAgICAgIDo6PSB7IG9zcGZ2M0dlbmVyYWxHcm91cCAxOSB9ICAKKyAgICAKK29zcGZ2M1Jlc3RhcnRBZ2UgT0JKRUNULVRZUEUgIAorICAgICAgIFNZTlRBWCAgICAgICBVcFRvUmVmcmVzaEludGVydmFsIAorICAgICAgIFVOSVRTICAgICAgICAic2Vjb25kcyIgIAorICAgICAgIE1BWC1BQ0NFU1MgICByZWFkLW9ubHkgIAorICAgICAgIFNUQVRVUyAgICAgICBjdXJyZW50ICAKKyAgICAgICBERVNDUklQVElPTiAgCisgICAgICAgICAgIlJlbWFpbmluZyB0aW1lIGluIGN1cnJlbnQgT1NQRiBoaXRsZXNzIHJlc3RhcnQgIAorICAgICAgICAgIGludGVydmFsLiIgIAorICAgICAgIDo6PSB7IG9zcGZ2M0dlbmVyYWxHcm91cCAyMCB9ICAKKyAgICAKK29zcGZ2M1Jlc3RhcnRFeGl0UmVhc29uIE9CSkVDVC1UWVBFICAKKyAgICAgICBTWU5UQVggICAgICAgSU5URUdFUiB7IG5vbmUgKDEpLCAgICAgICAgICAgLS0gbm9uZSBhdHRlbXB0ZWQgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5Qcm9ncmVzcyAoMiksICAgICAtLSByZXN0YXJ0IGluICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gcHJvZ3Jlc3MgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGVkICgzKSwgICAgICAtLSBzdWNjZXNzZnVsbHkgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBjb21wbGV0ZWQgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZWRPdXQgKDQpLCAgICAgICAtLSB0aW1lZCBvdXQgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wb2xvZ3lDaGFuZ2VkICg1KSAtLSBhYm9ydGVkIGR1ZSB0byAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIHRvcG9sb2d5Y2hhbmdlLiAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAgCisgICAgICAgTUFYLUFDQ0VTUyAgIHJlYWQtb25seSAgCisgICAgICAgU1RBVFVTICAgICAgIGN1cnJlbnQgIAorICAgICAgIERFU0NSSVBUSU9OICAKKyAgICAgICAgICAiRGVzY3JpYmVzIHRoZSBvdXRjb21lIG9mIHRoZSBsYXN0IGF0dGVtcHQgYXQgYSAgCisgICAgICAgICAgaGl0bGVzcyByZXN0YXJ0LiBJZiB0aGUgdmFsdWUgaXMgJ25vbmUnLCBubyByZXN0YXJ0ICAKKyAgICAgICAgICAgaGFzIHlldCBiZWVuIGF0dGVtcHRlZC4gSWYgdGhlIHZhbHVlIGlzICdpblByb2dyZXNzJywgIAorICAgICAgICAgIGEgcmVzdGFydCBhdHRlbXB0IGlzIGN1cnJlbnRseSB1bmRlcndheS4iICAKKyAgICA6Oj0geyBvc3BmdjNHZW5lcmFsR3JvdXAgMjEgfSAKKyAKKyAKKy0tIFRoZSBPU1BGdjMgQXJlYSBEYXRhIFN0cnVjdHVyZSBjb250YWlucyBpbmZvcm1hdGlvbiAKKy0tIHJlZ2FyZGluZyB0aGUgdmFyaW91cyBhcmVhcy4gVGhlIGludGVyZmFjZXMgYW5kIAorLS0gdmlydHVhbCBsaW5rcyBhcmUgY29uZmlndXJlZCBhcyBwYXJ0IG9mIHRoZXNlIGFyZWFzLiAKKy0tIEFyZWEgMC4wLjAuMCwgYnkgZGVmaW5pdGlvbiwgaXMgdGhlIEJhY2tib25lIEFyZWEgCisgCitvc3BmdjNBcmVhVGFibGUgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBTRVFVRU5DRSBPRiBPc3BmdjNBcmVhRW50cnkgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIkluZm9ybWF0aW9uIGRlc2NyaWJpbmcgdGhlIGNvbmZpZ3VyZWQgIHBhcmFtZS0gCisgICAgICAgICAgICB0ZXJzICBhbmQgY3VtdWxhdGl2ZSBzdGF0aXN0aWNzIG9mIHRoZSByb3V0ZXIncyAKKyAgICAgICAgICAgIGF0dGFjaGVkIGFyZWFzLiIgCisgICAgICAgIFJFRkVSRU5DRSAKKyAgICAgICAgICAgICJPU1BGIFZlcnNpb24gMiwgU2VjdGlvbiA2IFRoZSBBcmVhIERhdGEgU3RydWMtIAorICAgICAgICAgICAgdHVyZSIgCisgICAgICAgIDo6PSB7IG9zcGZ2M09iamVjdHMgMiB9IAorIAorb3NwZnYzQXJlYUVudHJ5IE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgT3NwZnYzQXJlYUVudHJ5IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJJbmZvcm1hdGlvbiBkZXNjcmliaW5nIHRoZSBjb25maWd1cmVkIHBhcmFtZS0gCisgICAgICAgICAgICB0ZXJzIGFuZCBjdW11bGF0aXZlIHN0YXRpc3RpY3Mgb2Ygb25lIG9mIHRoZSAKKyAgICAgICAgICAgIHJvdXRlcidzIGF0dGFjaGVkIGFyZWFzLiIgCisgICAgICAgIElOREVYICAgICAgICAgICB7IG9zcGZ2M0FyZWFJZCB9IAorICAgICAgICA6Oj0geyBvc3BmdjNBcmVhVGFibGUgMSB9IAorIAorT3NwZnYzQXJlYUVudHJ5IDo6PSBTRVFVRU5DRSB7IAorICAgICAgICBvc3BmdjNBcmVhSWQgCisgICAgICAgICAgICAgICAgQXJlYUlELCAKKyAgICAgICAgb3NwZnYzSW1wb3J0QXNFeHRlcm4gCisgICAgICAgICAgICAgICAgSU5URUdFUiwgCisgICAgICAgIG9zcGZ2M0FyZWFTcGZSdW5zIAorICAgICAgICAgICAgICAgIENvdW50ZXIzMiwgCisgICAgICAgIG9zcGZ2M0FyZWFCZHJSdHJDb3VudCAKKyAgICAgICAgICAgICAgICBHYXVnZTMyLCAKKyAgICAgICAgb3NwZnYzQXJlYUFzQmRyUnRyQ291bnQgCisgICAgICAgICAgICAgICAgR2F1Z2UzMiwgCisgICAgICAgIG9zcGZ2M0FyZWFTY29wZUxzYUNvdW50IAorICAgICAgICAgICAgICAgIEdhdWdlMzIsIAorICAgICAgICBvc3BmdjNBcmVhU2NvcGVMc2FDa3N1bVN1bSAKKyAgICAgICAgICAgICAgICBJbnRlZ2VyMzIsIAorICAgICAgICBvc3BmdjNBcmVhU3VtbWFyeSAKKyAgICAgICAgICAgICAgICBJTlRFR0VSLCAKKyAgICAgICAgb3NwZnYzQXJlYVN0YXR1cyAKKyAgICAgICAgICAgICAgICBSb3dTdGF0dXMsIAorICAgICAgICBvc3BmdjNTdHViTWV0cmljIAorICAgICAgICAgICAgICAgIEJpZ01ldHJpYywgCisgICAgICAgIG9zcGZ2M0FyZWFOc3NhVHJhbnNsYXRvclJvbGUgCisgICAgICAgICAgICAgICAgSU5URUdFUiwgCisgICAgICAgIG9zcGZ2M0FyZWFOc3NhVHJhbnNsYXRvclN0YXRlIAorICAgICAgICAgICAgICAgIElOVEVHRVIsIAorICAgICAgICBvc3BmdjNBcmVhTnNzYVRyYW5zbGF0b3JTdGFiaWxpdHlJbnRlcnZhbCAKKyAgICAgICAgICAgICAgICBVbnNpZ25lZDMyLCAKKyAgICAgICAgb3NwZnYzQXJlYU5zc2FUcmFuc2xhdG9yRXZlbnRzIAorICAgICAgICAgICAgICAgIENvdW50ZXIzMiwgCisgICAgICAgIG9zcGZ2M0FyZWFTdHViTWV0cmljVHlwZSAKKyAgICAgICAgICAgICAgICBJTlRFR0VSIAorICAgICAgICB9IAorIAorb3NwZnYzQXJlYUlkIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgQXJlYUlEIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJBIDMyLWJpdCBpbnRlZ2VyIHVuaXF1ZWx5IGlkZW50aWZ5aW5nIGFuIGFyZWEuIAorICAgICAgICAgICAgQXJlYSBJRCAwLjAuMC4wIGlzIHVzZWQgZm9yIHRoZSBPU1BGdjMgYmFja2JvbmUuIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAyLCBBcHBlbmRpeCBDLjIgQXJlYSBwYXJhbWV0ZXJzIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzQXJlYUVudHJ5IDEgfSAKKyAKK29zcGZ2M0ltcG9ydEFzRXh0ZXJuIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSU5URUdFUiB7IAorICAgICAgICAgICAgICAgICAgICAgICAgaW1wb3J0RXh0ZXJuYWwoMSksICAgLS0gbm9ybWFsIGFyZWEgCisgICAgICAgICAgICAgICAgICAgICAgICBpbXBvcnROb0V4dGVybmFsKDIpLCAtLSBzdHViIGFyZWEgCisgICAgICAgICAgICAgICAgICAgICAgICBpbXBvcnROc3NhKDMpICAgICAgICAtLSBub3Qtc28tc3R1YmJ5LWFyZWEgCisgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJJbmRpY2F0ZXMgd2hldGhlciBhbiBhcmVhIGlzIGEgU3R1YiBhcmVhLCBOU1NBLCBvciAKKyAgICAgICAgICAgIHN0YW5kYXJkIGFyZWEuIEFTLXNjb3BlIExTQXMgYXJlIG5vdCBpbXBvcnRlZCBpbnRvIFN0dWIgCisgICAgICAgICAgICBBcmVhcyBvciBOU1NBcy4gTlNTQXMgaW1wb3J0IEFTLUV4dGVybmFsIGRhdGEgYXMgVHlwZS03IAorICAgICAgICAgICAgTFNBcyB3aGljaCBoYXZlIEFyZWEtc2NvcGUiIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uIDIsIEFwcGVuZGl4IEMuMiBBcmVhIHBhcmFtZXRlcnMiIAorICAgICAgICBERUZWQUwgeyBpbXBvcnRFeHRlcm5hbCB9IAorICAgICAgICA6Oj0geyBvc3BmdjNBcmVhRW50cnkgMiB9IAorIAorb3NwZnYzQXJlYVNwZlJ1bnMgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBDb3VudGVyMzIgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIHRpbWVzIHRoYXQgdGhlIGludHJhLWFyZWEgIHJvdXRlIAorICAgICAgICAgICAgdGFibGUgIGhhcyAgYmVlbiAgY2FsY3VsYXRlZCAgdXNpbmcgdGhpcyBhcmVhJ3MgCisgICAgICAgICAgICBsaW5rLXN0YXRlIGRhdGFiYXNlLiAgVGhpcyAgaXMgIHR5cGljYWxseSAgZG9uZSAKKyAgICAgICAgICAgIHVzaW5nIERpamtzdHJhJ3MgYWxnb3JpdGhtLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0FyZWFFbnRyeSAzIH0gCisgCitvc3BmdjNBcmVhQmRyUnRyQ291bnQgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBHYXVnZTMyIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBhcmVhIGJvcmRlciByb3V0ZXJzIHJlYWNoLSAKKyAgICAgICAgICAgIGFibGUgd2l0aGluIHRoaXMgYXJlYS4gIFRoaXMgaXMgaW5pdGlhbGx5IHplcm8sIAorICAgICAgICAgICAgYW5kIGlzIGNhbGN1bGF0ZWQgaW4gZWFjaCBTUEYgUGFzcy4iIAorICAgICAgICA6Oj0geyBvc3BmdjNBcmVhRW50cnkgNCB9IAorIAorb3NwZnYzQXJlYUFzQmRyUnRyQ291bnQgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBHYXVnZTMyIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBBdXRvbm9tb3VzICBTeXN0ZW0gIGJvcmRlciAKKyAgICAgICAgICAgIHJvdXRlcnMgIHJlYWNoYWJsZSAgd2l0aGluICB0aGlzIGFyZWEuICBUaGlzIGlzIAorICAgICAgICAgICAgaW5pdGlhbGx5IHplcm8sIGFuZCBpcyBjYWxjdWxhdGVkIGluICBlYWNoICBTUEYgCisgICAgICAgICAgICBQYXNzLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0FyZWFFbnRyeSA1IH0gCisgCitvc3BmdjNBcmVhU2NvcGVMc2FDb3VudCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEdhdWdlMzIgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIEFyZWEtU2NvcGUgbGluay1zdGF0ZSAgCisgICAgICAgICAgICBhZHZlcnRpc2VtZW50cyBpbiAgdGhpcyAgYXJlYSdzIGxpbmstc3RhdGUgIAorICAgICAgICAgICAgZGF0YWJhc2UuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzQXJlYUVudHJ5IDYgfSAKKyAKK29zcGZ2M0FyZWFTY29wZUxzYUNrc3VtU3VtIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSW50ZWdlcjMyIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIDMyLWJpdCB1bnNpZ25lZCBzdW0gb2YgdGhlIEFyZWEtU2NvcGUgbGluay1zdGF0ZSAKKyAgICAgICAgICAgIGFkdmVydGlzZW1lbnRzJyAgTFMgIGNoZWNrc3VtcyAgY29udGFpbmVkIGluIHRoaXMgCisgICAgICAgICAgICBhcmVhJ3MgbGluay1zdGF0ZSBkYXRhYmFzZS4gIFRoZSBzdW0gY2FuIGJlIHVzZWQgCisgICAgICAgICAgICB0byBkZXRlcm1pbmUgaWYgIHRoZXJlICBoYXMgYmVlbiAgYSAgY2hhbmdlICBpbiBhIAorICAgICAgICAgICAgcm91dGVyJ3MgbGluayBzdGF0ZSBkYXRhYmFzZSwgYW5kIHRvIGNvbXBhcmUgdGhlIAorICAgICAgICAgICAgbGluay1zdGF0ZSBkYXRhYmFzZSBvZiB0d28gcm91dGVycy4iIAorICAgICAgICA6Oj0geyBvc3BmdjNBcmVhRW50cnkgNyB9IAorIAorb3NwZnYzQXJlYVN1bW1hcnkgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJTlRFR0VSIHsgCisgICAgICAgICAgICAgICAgICAgICAgICBub0FyZWFTdW1tYXJ5KDEpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbmRBcmVhU3VtbWFyeSgyKSAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLWNyZWF0ZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSB2YXJpYWJsZSBvc3BmdjNBcmVhU3VtbWFyeSBjb250cm9scyB0aGUgIGltLSAKKyAgICAgICAgICAgIHBvcnQgIG9mICBJbnRlci1BcmVhIExTQXMgaW50byBzdHViIGFyZWFzLiAgSXQgaGFzIAorICAgICAgICAgICAgbm8gZWZmZWN0IG9uIG90aGVyIGFyZWFzLiAKKyAKKyAgICAgICAgICAgIElmIGl0IGlzIG5vQXJlYVN1bW1hcnksIHRoZSByb3V0ZXIgd2lsbCBuZWl0aGVyIAorICAgICAgICAgICAgb3JpZ2luYXRlICBub3IgIHByb3BhZ2F0ZSBJbnRlci1BcmVhIExTQXMgaW50byB0aGUgCisgICAgICAgICAgICBzdHViIGFyZWEuICBJdCB3aWxsIHJlbHkgZW50aXJlbHkgIG9uICBpdHMgIGRlLSAKKyAgICAgICAgICAgIGZhdWx0IHJvdXRlLiAKKyAKKyAgICAgICAgICAgIElmIGl0IGlzIHNlbmRBcmVhU3VtbWFyeSwgdGhlIHJvdXRlciB3aWxsICBib3RoIAorICAgICAgICAgICAgc3VtbWFyaXplIGFuZCBwcm9wYWdhdGUgSW50ZXItQXJlYSBMU0FzLiIgCisgICAgICAgIERFRlZBTCAgIHsgc2VuZEFyZWFTdW1tYXJ5IH0gCisgICAgICAgIDo6PSB7IG9zcGZ2M0FyZWFFbnRyeSA4IH0gCisgCitvc3BmdjNBcmVhU3RhdHVzIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgUm93U3RhdHVzIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGlzIHZhcmlhYmxlIGNvbnRyb2xzIHRoZSBzdGF0dXMgb2YgIHRoZSAgZW4tIAorICAgICAgICAgICAgdHJ5LiBUaGUgdXNlIG9mIFJvd1N0YXR1cyBpcyBjb3ZlcmVkIGluIG1vcmUgZGV0YWlsIAorICAgICAgICAgICAgaW4gWzZdLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0FyZWFFbnRyeSA5IH0gCisgCitvc3BmdjNTdHViTWV0cmljIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgQmlnTWV0cmljIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgbWV0cmljIHZhbHVlIGFkdmVydGlzZWQgZm9yIHRoZSBkZWZhdWx0IHJvdXRlIAorICAgICAgICAgICAgIGludG8gU3R1YiBhbmQgTlNTQSBhcmVhcy4iIAorICAgICAgICA6Oj0geyBvc3BmdjNBcmVhRW50cnkgMTAgfSAKKyAKK29zcGZ2M0FyZWFOc3NhVHJhbnNsYXRvclJvbGUgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJTlRFR0VSIHsgYWx3YXlzKDEpLCBjYW5kaWRhdGUoMikgfSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtY3JlYXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiSW5kaWNhdGVzIGFuIE5TU0EgQm9yZGVyIHJvdXRlcidzIGFiaWxpdHkgdG8gCisgICAgICAgICAgICBwZXJmb3JtIE5TU0EgdHJhbnNsYXRpb24gb2YgdHlwZS03IExTQXMgaW50byAKKyAgICAgICAgICAgIHR5cGUtNSBMU0FzLiIgCisgICAgICAgIERFRlZBTCB7IGNhbmRpZGF0ZSB9IAorICAgICAgICA6Oj0geyBvc3BmdjNBcmVhRW50cnkgMTEgfSAKKyAKK29zcGZ2M0FyZWFOc3NhVHJhbnNsYXRvclN0YXRlIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSU5URUdFUiB7IAorICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlZCgxKSwgCisgICAgICAgICAgICAgICAgICAgICAgICBlbGVjdGVkKDIpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkKDMpIAorICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIkluZGljYXRlcyBpZiBhbmQgaG93IGFuIE5TU0EgQm9yZGVyIHJvdXRlciBpcyAKKyAgICAgICAgICAgICBwZXJmb3JtaW5nIE5TU0EgdHJhbnNsYXRpb24gb2YgdHlwZS03IExTQXMgaW50byB0eXBlLTUgCisgICAgICAgICAgICAgTFNBcy4gV2hlbiB0aGlzIG9iamVjdCBpcyBzZXQgdG8gZW5hYmxlZCwgdGhlIE5TU0EgCisgICAgICAgICAgICAgQm9yZGVyIHJvdXRlcidzIG9zcGZ2M0FyZWFOc3NUcmFuc2xhdG9yUm9sZSAKKyAgICAgICAgICAgICBoYXMgYmVlbiBzZXQgdG8gYWx3YXlzLiBXaGVuIHRoaXMgb2JqZWN0IGlzIHNldCB0byAKKyAgICAgICAgICAgICBlbGVjdGVkLCBhIGNhbmRpZGF0ZSBOU1NBIEJvcmRlciByb3V0ZXIgaXMgdHJhbnNsYXRpbmcgCisgICAgICAgICAgICAgdHlwZS03IExTQXMgaW50byB0eXBlLTUuIFdoZW4gdGhpcyBvYmplY3QgaXMgc2V0IHRvIAorICAgICAgICAgICAgIGRpc2FibGVkLCBhIGNhbmRpZGF0ZSBOU1NBIEJvcmRlciByb3V0ZXIgaXMgTk9UIAorICAgICAgICAgICAgIHRyYW5zbGF0aW5nIHR5cGUtNyBMU0FzIGludG8gdHlwZS01LiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0FyZWFFbnRyeSAxMiB9IAorIAorb3NwZnYzQXJlYU5zc2FUcmFuc2xhdG9yU3RhYmlsaXR5SW50ZXJ2YWwgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBVbnNpZ25lZDMyIAorICAgICAgICBVTklUUyAgICAgICAgICAgInNlY29uZHMiIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgYW4gZWxlY3RlZCB0cmFuc2xhdG9yIAorICAgICAgICAgICAgZGV0ZXJtaW5lcyBpdHMgc2VydmljZXMgYXJlIG5vIGxvbmdlciByZXF1aXJlZCwgdGhhdCAKKyAgICAgICAgICAgIGl0IHNob3VsZCBjb250aW51ZSB0byBwZXJmb3JtIGl0cyB0cmFuc2xhdGlvbiBkdXRpZXMuIiAKKyAgICAgICAgREVGVkFMIHsgNDAgfSAKKyAgICAgICAgOjo9IHsgb3NwZnYzQXJlYUVudHJ5IDEzIH0gCisgCitvc3BmdjNBcmVhTnNzYVRyYW5zbGF0b3JFdmVudHMgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBDb3VudGVyMzIgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJJbmRpY2F0ZXMgdGhlIG51bWJlciBvZiBUcmFuc2xhdG9yIFN0YXRlIGNoYW5nZXMgCisgICAgICAgICAgICB0aGF0IGhhdmUgb2NjdXJyZWQgc2luY2UgdGhlIGxhc3QgYm9vdC11cC4iIAorICAgICAgICA6Oj0geyBvc3BmdjNBcmVhRW50cnkgMTQgfSAKKworb3NwZnYzQXJlYVN0dWJNZXRyaWNUeXBlIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgSU5URUdFUiB7IAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzTWV0cmljICgxKSwgIC0tIE9TUEYgTWV0cmljIAorICAgICAgICAgICAgICAgICAgICAgICAgY29tcGFyYWJsZUNvc3QgKDIpLCAtLSBleHRlcm5hbCB0eXBlIDEgCisgICAgICAgICAgICAgICAgICAgICAgICBub25Db21wYXJhYmxlICAoMykgLS0gZXh0ZXJuYWwgdHlwZSAyIAorICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgIHJlYWQtY3JlYXRlIAorICAgICAgICBTVEFUVVMgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICJUaGlzIHZhcmlhYmxlIGRpc3BsYXlzIHRoZSB0eXBlIG9mIG1ldHJpYyBhZC0gCisgICAgICAgICAgIHZlcnRpc2VkIGFzIGEgZGVmYXVsdCByb3V0ZS4iIAorICAgICAgICBERUZWQUwgeyBvc3BmdjNNZXRyaWMgfSAKKyAgICAgICAgOjo9IHsgb3NwZnYzQXJlYUVudHJ5IDE1IH0gCisKKy0tIE9TUEZ2MyBBUy1TY29wZSBMaW5rIFN0YXRlIERhdGFiYXNlIAorIAorLS0gVGhlIExpbmsgU3RhdGUgRGF0YWJhc2UgY29udGFpbnMgdGhlIEFTLVNjb3BlIExpbmsgU3RhdGUgCistLSBBZHZlcnRpc2VtZW50cyBmcm9tIHRocm91Z2hvdXQgdGhlIGFyZWFzIHRoYXQgdGhlIAorLS0gZGV2aWNlIGlzIGF0dGFjaGVkIHRvLiAKKyAKK29zcGZ2M0FzTHNkYlRhYmxlIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgU0VRVUVOQ0UgT0YgT3NwZnYzQXNMc2RiRW50cnkgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBPU1BGdjMgUHJvY2VzcydzIEFTLVNjb3BlIExpbmsgU3RhdGUgRGF0YWJhc2UuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzT2JqZWN0cyAzIH0gCisgCitvc3BmdjNBc0xzZGJFbnRyeSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIE9zcGZ2M0FzTHNkYkVudHJ5IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJBIHNpbmdsZSBBUy1TY29wZSBMaW5rIFN0YXRlIEFkdmVydGlzZW1lbnQuIiAKKyAgICAgICAgSU5ERVggICAgICAgICAgIHsgb3NwZnYzQXNMc2RiVHlwZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0FzTHNkYlJvdXRlcklkLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXNMc2RiTHNpZCB9IAorICAgICAgICA6Oj0geyBvc3BmdjNBc0xzZGJUYWJsZSAxIH0gCisgCitPc3BmdjNBc0xzZGJFbnRyeSA6Oj0gU0VRVUVOQ0UgeyAKKyAgICAgICAgb3NwZnYzQXNMc2RiVHlwZSAKKyAgICAgICAgICAgICAgICBVbnNpZ25lZDMyLCAKKyAgICAgICAgb3NwZnYzQXNMc2RiUm91dGVySWQgCisgICAgICAgICAgICAgICAgUm91dGVySUQsIAorICAgICAgICBvc3BmdjNBc0xzZGJMc2lkIAorICAgICAgICAgICAgICAgIElwQWRkcmVzcywgCisgICAgICAgIG9zcGZ2M0FzTHNkYlNlcXVlbmNlIAorICAgICAgICAgICAgICAgIEludGVnZXIzMiwgCisgICAgICAgIG9zcGZ2M0FzTHNkYkFnZSAKKyAgICAgICAgICAgICAgICBJbnRlZ2VyMzIsIAorICAgICAgICBvc3BmdjNBc0xzZGJDaGVja3N1bSAKKyAgICAgICAgICAgICAgICBJbnRlZ2VyMzIsIAorICAgICAgICBvc3BmdjNBc0xzZGJBZHZlcnRpc2VtZW50IAorICAgICAgICAgICAgICAgIE9DVEVUIFNUUklORywgCisgICAgICAgIG9zcGZ2M0FzTHNkYlR5cGVLbm93biAKKyAgICAgICAgICAgICAgICBUcnV0aFZhbHVlIAorICAgICAgICB9IAorIAorb3NwZnYzQXNMc2RiVHlwZSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFVuc2lnbmVkMzIoMC4uJ0ZGRkZGRkZGJ2gpIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgdHlwZSBvZiB0aGUgbGluayBzdGF0ZSBhZHZlcnRpc2VtZW50LiAKKyAgICAgICAgICAgIEVhY2ggbGluayBzdGF0ZSB0eXBlIGhhcyBhIHNlcGFyYXRlIGFkdmVydGlzZS0gCisgICAgICAgICAgICBtZW50IGZvcm1hdC4gQVMtU2NvcGUgTFNBcyBub3QgcmVjb2duaXplZCBieSAKKyAgICAgICAgICAgIHRoZSByb3V0ZXIgbWF5IGJlIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzQXNMc2RiRW50cnkgMSB9IAorIAorb3NwZnYzQXNMc2RiUm91dGVySWQgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBSb3V0ZXJJRCAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIDMyIGJpdCBudW1iZXIgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSAKKyAgICAgICAgICAgIG9yaWdpbmF0aW5nIHJvdXRlciBpbiB0aGUgQXV0b25vbW91cyBTeXN0ZW0uIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAyLCBBcHBlbmRpeCBDLjEgR2xvYmFsIHBhcmFtZXRlcnMiIAorICAgICAgICA6Oj0geyBvc3BmdjNBc0xzZGJFbnRyeSAyIH0gCisgCitvc3BmdjNBc0xzZGJMc2lkIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSXBBZGRyZXNzIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgTGluayBTdGF0ZSBJRCBpcyBhbiBMUyBUeXBlIFNwZWNpZmljIGZpZWxkIAorICAgICAgICAgICAgY29udGFpbmluZyBhIHVuaXF1ZSBpZGVudGlmaWVyOyAKKyAgICAgICAgICAgIGl0IGlkZW50aWZpZXMgdGhlIHBpZWNlIG9mIHRoZSAgcm91dGluZyAgZG9tYWluIAorICAgICAgICAgICAgdGhhdCBpcyBiZWluZyBkZXNjcmliZWQgYnkgdGhlIGFkdmVydGlzZW1lbnQuIAorICAgICAgICAgICAgSW4gY29udHJhc3QgdG8gT1NQRnYyLCB0aGUgTFNJRCBoYXMgbm8gCisgICAgICAgICAgICBhZGRyZXNzaW5nIHNlbWFudGljcy4iIAorICAgICAgICA6Oj0geyBvc3BmdjNBc0xzZGJFbnRyeSAzIH0gCisgCistLSBOb3RlIHRoYXQgdGhlIE9TUEYgU2VxdWVuY2UgTnVtYmVyIGlzIGEgMzIgYml0IHNpZ25lZCAKKy0tIGludGVnZXIuICBJdCBzdGFydHMgd2l0aCB0aGUgdmFsdWUgJzgwMDAwMDAxJ2gsIAorLS0gb3IgLSc3RkZGRkZGRidoLCBhbmQgaW5jcmVtZW50cyB1bnRpbCAnN0ZGRkZGRkYnaCAKKy0tIFRodXMsIGEgdHlwaWNhbCBzZXF1ZW5jZSBudW1iZXIgd2lsbCBiZSB2ZXJ5IG5lZ2F0aXZlLiAKKyAKK29zcGZ2M0FzTHNkYlNlcXVlbmNlIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSW50ZWdlcjMyIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIHNlcXVlbmNlIG51bWJlciBmaWVsZCBpcyBhICBzaWduZWQgIDMyLWJpdCAKKyAgICAgICAgICAgIGludGVnZXIuICAgSXQgIGlzIHVzZWQgdG8gZGV0ZWN0IG9sZCBhbmQgZHVwbGktIAorICAgICAgICAgICAgY2F0ZSBsaW5rIHN0YXRlIGFkdmVydGlzZW1lbnRzLiAgVGhlICBzcGFjZSAgb2YgCisgICAgICAgICAgICBzZXF1ZW5jZSAgbnVtYmVycyAgaXMgIGxpbmVhcmx5ICBvcmRlcmVkLiAgIFRoZSAKKyAgICAgICAgICAgIGxhcmdlciB0aGUgc2VxdWVuY2UgbnVtYmVyIHRoZSBtb3JlIHJlY2VudCAgdGhlIAorICAgICAgICAgICAgYWR2ZXJ0aXNlbWVudC4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uICAyLCAgU2VjdGlvbiAgMTIuMS42ICBMUyAgc2VxdWVuY2UgCisgICAgICAgICAgICBudW1iZXIiIAorICAgICAgICA6Oj0geyBvc3BmdjNBc0xzZGJFbnRyeSA0IH0gCisgCitvc3BmdjNBc0xzZGJBZ2UgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJbnRlZ2VyMzIgLS0gU2hvdWxkIGJlIDAuLk1heEFnZSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSB1bmxlc3MgRG9Ob3RBZ2UgYml0IGlzIHNldCAKKyAgICAgICAgVU5JVFMgICAgICAgICAgICJzZWNvbmRzIiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoaXMgZmllbGQgaXMgdGhlIGFnZSBvZiB0aGUgbGluayBzdGF0ZSBhZHZlci0gCisgICAgICAgICAgICB0aXNlbWVudCBpbiBzZWNvbmRzLiIgCisgICAgICAgIFJFRkVSRU5DRSAKKyAgICAgICAgICAgICJPU1BGIFZlcnNpb24gMiwgU2VjdGlvbiAxMi4xLjEgTFMgYWdlIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzQXNMc2RiRW50cnkgNSB9IAorIAorb3NwZnYzQXNMc2RiQ2hlY2tzdW0gT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJbnRlZ2VyMzIgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGlzIGZpZWxkIGlzIHRoZSAgY2hlY2tzdW0gIG9mICB0aGUgIGNvbXBsZXRlIAorICAgICAgICAgICAgY29udGVudHMgIG9mICB0aGUgIGFkdmVydGlzZW1lbnQsIGV4Y2VwdGluZyB0aGUgCisgICAgICAgICAgICBhZ2UgZmllbGQuICBUaGUgYWdlIGZpZWxkIGlzIGV4Y2VwdGVkICBzbyAgdGhhdCAKKyAgICAgICAgICAgIGFuICAgYWR2ZXJ0aXNlbWVudCdzICBhZ2UgIGNhbiAgYmUgIGluY3JlbWVudGVkIAorICAgICAgICAgICAgd2l0aG91dCB1cGRhdGluZyB0aGUgIGNoZWNrc3VtLiAgIFRoZSAgY2hlY2tzdW0gCisgICAgICAgICAgICB1c2VkICBpcyAgdGhlIHNhbWUgdGhhdCBpcyB1c2VkIGZvciBJU08gY29ubmVjLSAKKyAgICAgICAgICAgIHRpb25sZXNzIGRhdGFncmFtczsgaXQgaXMgY29tbW9ubHkgcmVmZXJyZWQgIHRvIAorICAgICAgICAgICAgYXMgdGhlIEZsZXRjaGVyIGNoZWNrc3VtLiIgCisgICAgICAgIFJFRkVSRU5DRSAKKyAgICAgICAgICAgICJPU1BGIFZlcnNpb24gMiwgU2VjdGlvbiAxMi4xLjcgTFMgY2hlY2tzdW0iIAorICAgICAgICA6Oj0geyBvc3BmdjNBc0xzZGJFbnRyeSA2IH0gCisgCitvc3BmdjNBc0xzZGJBZHZlcnRpc2VtZW50IE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgT0NURVQgU1RSSU5HIChTSVpFICgxLi42NTUzNSkpIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIGVudGlyZSBMaW5rIFN0YXRlIEFkdmVydGlzZW1lbnQsIGluY2x1ZGluZyAKKyAgICAgICAgICAgIGl0cyBoZWFkZXIuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzQXNMc2RiRW50cnkgNyB9IAorIAorb3NwZnYzQXNMc2RiVHlwZUtub3duIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgVHJ1dGhWYWx1ZSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIklzIHRoZSBMU0EgdHlwZSByZWNvZ25pemVkIGJ5IHRoaXMgUm91dGVyPyIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0FzTHNkYkVudHJ5IDggfSAKKyAKKyAKKy0tIE9TUEZ2MyBBcmVhLVNjb3BlIExpbmsgU3RhdGUgRGF0YWJhc2UgCisgCistLSBUaGUgTGluayBTdGF0ZSBEYXRhYmFzZSBjb250YWlucyB0aGUgQXJlYS1TY29wZSBMaW5rIFN0YXRlIAorLS0gQWR2ZXJ0aXNlbWVudHMgZnJvbSB0aHJvdWdob3V0IHRoZSBhcmVhIHRoYXQgdGhlIAorLS0gZGV2aWNlIGlzIGF0dGFjaGVkIHRvLiAKKyAKK29zcGZ2M0FyZWFMc2RiVGFibGUgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBTRVFVRU5DRSBPRiBPc3BmdjNBcmVhTHNkYkVudHJ5IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgT1NQRnYzIFByb2Nlc3MncyBBcmVhLVNjb3BlIExpbmsgU3RhdGUgRGF0YWJhc2UuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzT2JqZWN0cyA0IH0gCisgCitvc3BmdjNBcmVhTHNkYkVudHJ5IE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgT3NwZnYzQXJlYUxzZGJFbnRyeSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiQSBzaW5nbGUgQXJlYS1TY29wZSBMaW5rIFN0YXRlIEFkdmVydGlzZW1lbnQuIiAKKyAgICAgICAgSU5ERVggICAgICAgICAgIHsgb3NwZnYzQXJlYUxzZGJBcmVhSWQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBcmVhTHNkYlR5cGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBcmVhTHNkYlJvdXRlcklkLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXJlYUxzZGJMc2lkIH0gCisgICAgICAgIDo6PSB7IG9zcGZ2M0FyZWFMc2RiVGFibGUgMSB9IAorIAorT3NwZnYzQXJlYUxzZGJFbnRyeSA6Oj0gU0VRVUVOQ0UgeyAKKyAgICAgICAgb3NwZnYzQXJlYUxzZGJBcmVhSWQgCisgICAgICAgICAgICAgICAgQXJlYUlELCAKKyAgICAgICAgb3NwZnYzQXJlYUxzZGJUeXBlIAorICAgICAgICAgICAgICAgIFVuc2lnbmVkMzIsIAorICAgICAgICBvc3BmdjNBcmVhTHNkYlJvdXRlcklkIAorICAgICAgICAgICAgICAgIFJvdXRlcklELCAKKyAgICAgICAgb3NwZnYzQXJlYUxzZGJMc2lkIAorICAgICAgICAgICAgICAgIElwQWRkcmVzcywgCisgICAgICAgIG9zcGZ2M0FyZWFMc2RiU2VxdWVuY2UgCisgICAgICAgICAgICAgICAgSW50ZWdlcjMyLCAKKyAgICAgICAgb3NwZnYzQXJlYUxzZGJBZ2UgCisgICAgICAgICAgICAgICAgSW50ZWdlcjMyLCAKKyAgICAgICAgb3NwZnYzQXJlYUxzZGJDaGVja3N1bSAKKyAgICAgICAgICAgICAgICBJbnRlZ2VyMzIsIAorICAgICAgICBvc3BmdjNBcmVhTHNkYkFkdmVydGlzZW1lbnQgCisgICAgICAgICAgICAgICAgT0NURVQgU1RSSU5HLCAKKyAgICAgICAgb3NwZnYzQXJlYUxzZGJUeXBlS25vd24gCisgICAgICAgICAgICAgICAgVHJ1dGhWYWx1ZSAKKyAgICAgICAgfSAKKyAKK29zcGZ2M0FyZWFMc2RiQXJlYUlkIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgQXJlYUlEIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgMzIgYml0IGlkZW50aWZpZXIgb2YgdGhlIEFyZWEgZnJvbSB3aGljaCB0aGUgCisgICAgICAgICAgICBMU0Egd2FzIHJlY2VpdmVkLiIgCisgICAgICAgIFJFRkVSRU5DRSAKKyAgICAgICAgICAgICJPU1BGIFZlcnNpb24gMiwgQXBwZW5kaXggQy4yIEFyZWEgcGFyYW1ldGVycyIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0FyZWFMc2RiRW50cnkgMSB9IAorIAorb3NwZnYzQXJlYUxzZGJUeXBlIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgVW5zaWduZWQzMigwLi4nRkZGRkZGRkYnaCkgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSB0eXBlICBvZiAgdGhlICBsaW5rICBzdGF0ZSAgYWR2ZXJ0aXNlbWVudC4gCisgICAgICAgICAgICBFYWNoICBsaW5rIHN0YXRlIHR5cGUgaGFzIGEgc2VwYXJhdGUgYWR2ZXJ0aXNlLSAKKyAgICAgICAgICAgIG1lbnQgZm9ybWF0LiBBcmVhLVNjb3BlIExTQXMgdW5yZWNvZ25pemVkIGJ5IHRoZSAKKyAgICAgICAgICAgIHJvdXRlciBhcmUgYWxzbyBzdG9yZWQgaW4gdGhpcyBkYXRhYmFzZS4iIAorICAgICAgICA6Oj0geyBvc3BmdjNBcmVhTHNkYkVudHJ5IDIgfSAKKyAKK29zcGZ2M0FyZWFMc2RiUm91dGVySWQgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBSb3V0ZXJJRCAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIDMyIGJpdCBudW1iZXIgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSAKKyAgICAgICAgICAgIG9yaWdpbmF0aW5nIHJvdXRlciBpbiB0aGUgQXV0b25vbW91cyBTeXN0ZW0uIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAyLCBBcHBlbmRpeCBDLjEgR2xvYmFsIHBhcmFtZXRlcnMiIAorICAgICAgICA6Oj0geyBvc3BmdjNBcmVhTHNkYkVudHJ5IDMgfSAKKyAKK29zcGZ2M0FyZWFMc2RiTHNpZCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIElwQWRkcmVzcyAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIExpbmsgU3RhdGUgSUQgaXMgYW4gTFMgVHlwZSBTcGVjaWZpYyBmaWVsZCAKKyAgICAgICAgICAgIGNvbnRhaW5pbmcgYSB1bmlxdWUgaWRlbnRpZmllcjsgCisgICAgICAgICAgICBpdCBpZGVudGlmaWVzIHRoZSBwaWVjZSBvZiB0aGUgIHJvdXRpbmcgIGRvbWFpbiAKKyAgICAgICAgICAgIHRoYXQgaXMgYmVpbmcgZGVzY3JpYmVkIGJ5IHRoZSBhZHZlcnRpc2VtZW50LiAKKyAgICAgICAgICAgIEluIGNvbnRyYXN0IHRvIE9TUEZ2MiwgdGhlIExTSUQgaGFzIG5vIAorICAgICAgICAgICAgYWRkcmVzc2luZyBzZW1hbnRpY3MuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzQXJlYUxzZGJFbnRyeSA0IH0gCisgCistLSBOb3RlIHRoYXQgdGhlIE9TUEYgU2VxdWVuY2UgTnVtYmVyIGlzIGEgMzIgYml0IHNpZ25lZCAKKy0tIGludGVnZXIuICBJdCBzdGFydHMgd2l0aCB0aGUgdmFsdWUgJzgwMDAwMDAxJ2gsIAorLS0gb3IgLSc3RkZGRkZGRidoLCBhbmQgaW5jcmVtZW50cyB1bnRpbCAnN0ZGRkZGRkYnaCAKKy0tIFRodXMsIGEgdHlwaWNhbCBzZXF1ZW5jZSBudW1iZXIgd2lsbCBiZSB2ZXJ5IG5lZ2F0aXZlLiAKKyAKK29zcGZ2M0FyZWFMc2RiU2VxdWVuY2UgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJbnRlZ2VyMzIgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgc2VxdWVuY2UgbnVtYmVyIGZpZWxkIGlzIGEgIHNpZ25lZCAgMzItYml0IAorICAgICAgICAgICAgaW50ZWdlci4gICBJdCAgaXMgdXNlZCB0byBkZXRlY3Qgb2xkIGFuZCBkdXBsaS0gCisgICAgICAgICAgICBjYXRlIGxpbmsgc3RhdGUgYWR2ZXJ0aXNlbWVudHMuICBUaGUgIHNwYWNlICBvZiAKKyAgICAgICAgICAgIHNlcXVlbmNlICBudW1iZXJzICBpcyAgbGluZWFybHkgIG9yZGVyZWQuICAgVGhlIAorICAgICAgICAgICAgbGFyZ2VyIHRoZSBzZXF1ZW5jZSBudW1iZXIgdGhlIG1vcmUgcmVjZW50ICB0aGUgCisgICAgICAgICAgICBhZHZlcnRpc2VtZW50LiIgCisgICAgICAgIFJFRkVSRU5DRSAKKyAgICAgICAgICAgICJPU1BGIFZlcnNpb24gIDIsICBTZWN0aW9uICAxMi4xLjYgIExTICBzZXF1ZW5jZSAKKyAgICAgICAgICAgIG51bWJlciIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0FyZWFMc2RiRW50cnkgNSB9IAorIAorb3NwZnYzQXJlYUxzZGJBZ2UgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJbnRlZ2VyMzIgLS0gU2hvdWxkIGJlIDAuLk1heEFnZSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSB1bmxlc3MgRG9Ob3RBZ2UgYml0IGlzIHNldCAKKyAgICAgICAgVU5JVFMgICAgICAgICAgICJzZWNvbmRzIiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoaXMgZmllbGQgaXMgdGhlIGFnZSBvZiB0aGUgbGluayBzdGF0ZSBhZHZlci0gCisgICAgICAgICAgICB0aXNlbWVudCBpbiBzZWNvbmRzLiIgCisgICAgICAgIFJFRkVSRU5DRSAKKyAgICAgICAgICAgICJPU1BGIFZlcnNpb24gMiwgU2VjdGlvbiAxMi4xLjEgTFMgYWdlIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzQXJlYUxzZGJFbnRyeSA2IH0gCisgCitvc3BmdjNBcmVhTHNkYkNoZWNrc3VtIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSW50ZWdlcjMyIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhpcyBmaWVsZCBpcyB0aGUgIGNoZWNrc3VtICBvZiAgdGhlICBjb21wbGV0ZSAKKyAgICAgICAgICAgIGNvbnRlbnRzICBvZiAgdGhlICBhZHZlcnRpc2VtZW50LCBleGNlcHRpbmcgdGhlIAorICAgICAgICAgICAgYWdlIGZpZWxkLiAgVGhlIGFnZSBmaWVsZCBpcyBleGNlcHRlZCAgc28gIHRoYXQgCisgICAgICAgICAgICBhbiAgIGFkdmVydGlzZW1lbnQncyAgYWdlICBjYW4gIGJlICBpbmNyZW1lbnRlZCAKKyAgICAgICAgICAgIHdpdGhvdXQgdXBkYXRpbmcgdGhlICBjaGVja3N1bS4gICBUaGUgIGNoZWNrc3VtIAorICAgICAgICAgICAgdXNlZCAgaXMgIHRoZSBzYW1lIHRoYXQgaXMgdXNlZCBmb3IgSVNPIGNvbm5lYy0gCisgICAgICAgICAgICB0aW9ubGVzcyBkYXRhZ3JhbXM7IGl0IGlzIGNvbW1vbmx5IHJlZmVycmVkICB0byAKKyAgICAgICAgICAgIGFzIHRoZSBGbGV0Y2hlciBjaGVja3N1bS4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uIDIsIFNlY3Rpb24gMTIuMS43IExTIGNoZWNrc3VtIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzQXJlYUxzZGJFbnRyeSA3IH0gCisgCitvc3BmdjNBcmVhTHNkYkFkdmVydGlzZW1lbnQgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBPQ1RFVCBTVFJJTkcgKFNJWkUgKDEuLjY1NTM1KSkgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgZW50aXJlIExpbmsgU3RhdGUgQWR2ZXJ0aXNlbWVudCwgaW5jbHVkaW5nIAorICAgICAgICAgICAgaXRzIGhlYWRlci4iIAorICAgICAgICA6Oj0geyBvc3BmdjNBcmVhTHNkYkVudHJ5IDggfSAKKyAKK29zcGZ2M0FyZWFMc2RiVHlwZUtub3duIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgVHJ1dGhWYWx1ZSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIklzIHRoZSBMU0EgdHlwZSByZWNvZ25pemVkIGJ5IHRoaXMgUm91dGVyPyIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0FyZWFMc2RiRW50cnkgOSB9IAorIAorLS0gT1NQRnYzIExpbmstU2NvcGUgTGluayBTdGF0ZSBEYXRhYmFzZSAKKyAKKy0tIFRoZSBMaW5rIFN0YXRlIERhdGFiYXNlIGNvbnRhaW5zIHRoZSBMaW5rLVNjb3BlIExpbmsgU3RhdGUgCistLSBBZHZlcnRpc2VtZW50cyBmcm9tIHRoZSBsaW5rcyB0aGF0IHRoZSAKKy0tIGRldmljZSBpcyBhdHRhY2hlZCB0by4gCisgCitvc3BmdjNMaW5rTHNkYlRhYmxlIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgU0VRVUVOQ0UgT0YgT3NwZnYzTGlua0xzZGJFbnRyeSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIE9TUEZ2MyBQcm9jZXNzJ3MgTGluay1TY29wZSBMaW5rIFN0YXRlIERhdGFiYXNlLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M09iamVjdHMgNSB9IAorIAorb3NwZnYzTGlua0xzZGJFbnRyeSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIE9zcGZ2M0xpbmtMc2RiRW50cnkgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIkEgc2luZ2xlIExpbmstU2NvcGUgTGluayBTdGF0ZSBBZHZlcnRpc2VtZW50LiIgCisgICAgICAgIElOREVYICAgICAgICAgICB7IG9zcGZ2M0xpbmtMc2RiSWZJbmRleCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0xpbmtMc2RiVHlwZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0xpbmtMc2RiUm91dGVySWQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNMaW5rTHNkYkxzaWQgfSAKKyAgICAgICAgOjo9IHsgb3NwZnYzTGlua0xzZGJUYWJsZSAxIH0gCisgCitPc3BmdjNMaW5rTHNkYkVudHJ5IDo6PSBTRVFVRU5DRSB7IAorICAgICAgICBvc3BmdjNMaW5rTHNkYklmSW5kZXggCisgICAgICAgICAgICAgICAgSW50ZXJmYWNlSW5kZXgsIAorICAgICAgICBvc3BmdjNMaW5rTHNkYlR5cGUgCisgICAgICAgICAgICAgICAgVW5zaWduZWQzMiwgCisgICAgICAgIG9zcGZ2M0xpbmtMc2RiUm91dGVySWQgCisgICAgICAgICAgICAgICAgUm91dGVySUQsIAorICAgICAgICBvc3BmdjNMaW5rTHNkYkxzaWQgCisgICAgICAgICAgICAgICAgSXBBZGRyZXNzLCAKKyAgICAgICAgb3NwZnYzTGlua0xzZGJTZXF1ZW5jZSAKKyAgICAgICAgICAgICAgICBJbnRlZ2VyMzIsIAorICAgICAgICBvc3BmdjNMaW5rTHNkYkFnZSAKKyAgICAgICAgICAgICAgICBJbnRlZ2VyMzIsIAorICAgICAgICBvc3BmdjNMaW5rTHNkYkNoZWNrc3VtIAorICAgICAgICAgICAgICAgIEludGVnZXIzMiwgCisgICAgICAgIG9zcGZ2M0xpbmtMc2RiQWR2ZXJ0aXNlbWVudCAKKyAgICAgICAgICAgICAgICBPQ1RFVCBTVFJJTkcsIAorICAgICAgICBvc3BmdjNMaW5rTHNkYlR5cGVLbm93biAKKyAgICAgICAgICAgICAgICBUcnV0aFZhbHVlIAorICAgICAgICB9IAorIAorb3NwZnYzTGlua0xzZGJJZkluZGV4IE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICBJbnRlcmZhY2VJbmRleCAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBpZGVudGlmaWVyIG9mIHRoZSBsaW5rIGZyb20gd2hpY2ggdGhlIExTQSAKKyAgICAgICAgICAgIHdhcyByZWNlaXZlZC4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uIDIsIEFwcGVuZGl4IEMuMiBBcmVhIHBhcmFtZXRlcnMiIAorICAgICAgICA6Oj0geyBvc3BmdjNMaW5rTHNkYkVudHJ5IDEgfSAKKyAKK29zcGZ2M0xpbmtMc2RiVHlwZSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFVuc2lnbmVkMzIoMC4uJ0ZGRkZGRkZGJ2gpIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgdHlwZSBvZiB0aGUgbGluayBzdGF0ZSBhZHZlcnRpc2VtZW50LiAKKyAgICAgICAgICAgIEVhY2ggbGluayBzdGF0ZSB0eXBlIGhhcyBhIHNlcGFyYXRlIGFkdmVydGlzZS0gCisgICAgICAgICAgICBtZW50IGZvcm1hdC4gTGluay1TY29wZSBMU0FzIHVucmVjb2duaXplZCBieSB0aGUgCisgICAgICAgICAgICByb3V0ZXIgYXJlIGFsc28gc3RvcmVkIGluIHRoaXMgZGF0YWJhc2UuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzTGlua0xzZGJFbnRyeSAyIH0gCisgCitvc3BmdjNMaW5rTHNkYlJvdXRlcklkIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgUm91dGVySUQgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSAzMiBiaXQgbnVtYmVyIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyB0aGUgCisgICAgICAgICAgICBvcmlnaW5hdGluZyByb3V0ZXIgaW4gdGhlIEF1dG9ub21vdXMgU3lzdGVtLiIgCisgICAgICAgIFJFRkVSRU5DRSAKKyAgICAgICAgICAgICJPU1BGIFZlcnNpb24gMiwgQXBwZW5kaXggQy4xIEdsb2JhbCBwYXJhbWV0ZXJzIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzTGlua0xzZGJFbnRyeSAzIH0gCisgCitvc3BmdjNMaW5rTHNkYkxzaWQgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgSXBBZGRyZXNzIAorICAgICAgICBNQVgtQUNDRVNTICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBMaW5rIFN0YXRlIElEIGlzIGFuIExTIFR5cGUgU3BlY2lmaWMgZmllbGQgCisgICAgICAgICAgICBjb250YWluaW5nIGEgdW5pcXVlIGlkZW50aWZpZXI7IAorICAgICAgICAgICAgaXQgaWRlbnRpZmllcyB0aGUgcGllY2Ugb2YgdGhlICByb3V0aW5nICBkb21haW4gCisgICAgICAgICAgICB0aGF0IGlzIGJlaW5nIGRlc2NyaWJlZCBieSB0aGUgYWR2ZXJ0aXNlbWVudC4gCisgICAgICAgICAgICBJbiBjb250cmFzdCB0byBPU1BGdjIsIHRoZSBMU0lEIGhhcyBubyAKKyAgICAgICAgICAgIGFkZHJlc3Npbmcgc2VtYW50aWNzLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0xpbmtMc2RiRW50cnkgNCB9IAorIAorLS0gTm90ZSB0aGF0IHRoZSBPU1BGIFNlcXVlbmNlIE51bWJlciBpcyBhIDMyIGJpdCBzaWduZWQgCistLSBpbnRlZ2VyLiAgSXQgc3RhcnRzIHdpdGggdGhlIHZhbHVlICc4MDAwMDAwMSdoLCAKKy0tIG9yIC0nN0ZGRkZGRkYnaCwgYW5kIGluY3JlbWVudHMgdW50aWwgJzdGRkZGRkZGJ2ggCistLSBUaHVzLCBhIHR5cGljYWwgc2VxdWVuY2UgbnVtYmVyIHdpbGwgYmUgdmVyeSBuZWdhdGl2ZS4gCisgCitvc3BmdjNMaW5rTHNkYlNlcXVlbmNlIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSW50ZWdlcjMyIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIHNlcXVlbmNlIG51bWJlciBmaWVsZCBpcyBhICBzaWduZWQgIDMyLWJpdCAKKyAgICAgICAgICAgIGludGVnZXIuICAgSXQgIGlzIHVzZWQgdG8gZGV0ZWN0IG9sZCBhbmQgZHVwbGktIAorICAgICAgICAgICAgY2F0ZSBsaW5rIHN0YXRlIGFkdmVydGlzZW1lbnRzLiAgVGhlICBzcGFjZSAgb2YgCisgICAgICAgICAgICBzZXF1ZW5jZSAgbnVtYmVycyAgaXMgIGxpbmVhcmx5ICBvcmRlcmVkLiAgIFRoZSAKKyAgICAgICAgICAgIGxhcmdlciB0aGUgc2VxdWVuY2UgbnVtYmVyIHRoZSBtb3JlIHJlY2VudCAgdGhlIAorICAgICAgICAgICAgYWR2ZXJ0aXNlbWVudC4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uICAyLCAgU2VjdGlvbiAgMTIuMS42ICBMUyAgc2VxdWVuY2UgCisgICAgICAgICAgICBudW1iZXIiIAorICAgICAgICA6Oj0geyBvc3BmdjNMaW5rTHNkYkVudHJ5IDUgfSAKKyAKK29zcGZ2M0xpbmtMc2RiQWdlIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSW50ZWdlcjMyIC0tIFNob3VsZCBiZSAwLi5NYXhBZ2UgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gdW5sZXNzIERvTm90QWdlIGJpdCBpcyBzZXQgCisgICAgICAgIFVOSVRTICAgICAgICAgICAic2Vjb25kcyIgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGlzIGZpZWxkIGlzIHRoZSBhZ2Ugb2YgdGhlIGxpbmsgc3RhdGUgCisgICAgICAgICAgICBhZHZlcnRpc2VtZW50IGluIHNlY29uZHMuIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAyLCBTZWN0aW9uIDEyLjEuMSBMUyBhZ2UiIAorICAgICAgICA6Oj0geyBvc3BmdjNMaW5rTHNkYkVudHJ5IDYgfSAKKyAKK29zcGZ2M0xpbmtMc2RiQ2hlY2tzdW0gT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJbnRlZ2VyMzIgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGlzIGZpZWxkIGlzIHRoZSAgY2hlY2tzdW0gIG9mICB0aGUgIGNvbXBsZXRlIAorICAgICAgICAgICAgY29udGVudHMgIG9mICB0aGUgIGFkdmVydGlzZW1lbnQsIGV4Y2VwdGluZyB0aGUgCisgICAgICAgICAgICBhZ2UgZmllbGQuICBUaGUgYWdlIGZpZWxkIGlzIGV4Y2VwdGVkICBzbyAgdGhhdCAKKyAgICAgICAgICAgIGFuICAgYWR2ZXJ0aXNlbWVudCdzICBhZ2UgIGNhbiAgYmUgIGluY3JlbWVudGVkIAorICAgICAgICAgICAgd2l0aG91dCB1cGRhdGluZyB0aGUgIGNoZWNrc3VtLiAgIFRoZSAgY2hlY2tzdW0gCisgICAgICAgICAgICB1c2VkICBpcyAgdGhlIHNhbWUgdGhhdCBpcyB1c2VkIGZvciBJU08gY29ubmVjLSAKKyAgICAgICAgICAgIHRpb25sZXNzIGRhdGFncmFtczsgaXQgaXMgY29tbW9ubHkgcmVmZXJyZWQgIHRvIAorICAgICAgICAgICAgYXMgdGhlIEZsZXRjaGVyIGNoZWNrc3VtLiIgCisgICAgICAgIFJFRkVSRU5DRSAKKyAgICAgICAgICAgICJPU1BGIFZlcnNpb24gMiwgU2VjdGlvbiAxMi4xLjcgTFMgY2hlY2tzdW0iIAorICAgICAgICA6Oj0geyBvc3BmdjNMaW5rTHNkYkVudHJ5IDcgfSAKKyAKK29zcGZ2M0xpbmtMc2RiQWR2ZXJ0aXNlbWVudCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIE9DVEVUIFNUUklORyAoU0laRSAoMS4uNjU1MzUpKSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBlbnRpcmUgTGluayBTdGF0ZSBBZHZlcnRpc2VtZW50LCBpbmNsdWRpbmcgCisgICAgICAgICAgICBpdHMgaGVhZGVyLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0xpbmtMc2RiRW50cnkgOCB9IAorIAorb3NwZnYzTGlua0xzZGJUeXBlS25vd24gT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBUcnV0aFZhbHVlIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiSW5kaWNhdGVzIHdoZXRoZXIgdGhlIExTQSB0eXBlIGlzIHJlY29nbml6ZWQgYnkgdGhpcyAKKyAgICAgICAgICAgICBSb3V0ZXIuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzTGlua0xzZGJFbnRyeSA5IH0gCisgCisgCistLSBPU1BGIEhvc3QgVGFibGUgCisgCistLSBUaGUgSG9zdC9NZXRyaWMgVGFibGUgaW5kaWNhdGVzIHdoYXQgaG9zdHMgYXJlIGRpcmVjdGx5IAorLS0gYXR0YWNoZWQgdG8gdGhlIFJvdXRlciwgYW5kIHdoYXQgbWV0cmljcyBhbmQgdHlwZXMgb2YgCistLSBzZXJ2aWNlIHNob3VsZCBiZSBhZHZlcnRpc2VkIGZvciB0aGVtLiAKKyAKK29zcGZ2M0hvc3RUYWJsZSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFNFUVVFTkNFIE9GIE9zcGZ2M0hvc3RFbnRyeSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIGxpc3Qgb2YgSG9zdHMsIGFuZCB0aGVpciBtZXRyaWNzLCB0aGF0IHRoZSAKKyAgICAgICAgICAgIHJvdXRlciB3aWxsIGFkdmVydGlzZSBhcyBob3N0IHJvdXRlcy4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uIDIsIEFwcGVuZGl4IEMuNiAgSG9zdCByb3V0ZSBwYXJhbS0gCisgICAgICAgICAgICBldGVycyIgCisgICAgICAgIDo6PSB7IG9zcGZ2M09iamVjdHMgNiB9IAorIAorb3NwZnYzSG9zdEVudHJ5IE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgT3NwZnYzSG9zdEVudHJ5IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJBIG1ldHJpYyB0byBiZSBhZHZlcnRpc2VkIHdoZW4gYSBnaXZlbiBob3N0IGlzIAorICAgICAgICAgICAgcmVhY2hhYmxlLiIgCisgICAgICAgIElOREVYICAgICAgICAgICB7IG9zcGZ2M0hvc3RBZGRyZXNzVHlwZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0hvc3RBZGRyZXNzIH0gCisgICAgICAgIDo6PSB7IG9zcGZ2M0hvc3RUYWJsZSAxIH0gCisgCitPc3BmdjNIb3N0RW50cnkgOjo9IFNFUVVFTkNFIHsgCisgICAgICAgIG9zcGZ2M0hvc3RBZGRyZXNzVHlwZSAKKyAgICAgICAgICAgICAgICBJbmV0QWRkcmVzc1R5cGUsIAorICAgICAgICBvc3BmdjNIb3N0QWRkcmVzcyAKKyAgICAgICAgICAgICAgICBJbmV0QWRkcmVzcywgCisgICAgICAgIG9zcGZ2M0hvc3RNZXRyaWMgCisgICAgICAgICAgICAgICAgTWV0cmljLCAKKyAgICAgICAgb3NwZnYzSG9zdFN0YXR1cyAKKyAgICAgICAgICAgICAgICBSb3dTdGF0dXMsIAorICAgICAgICBvc3BmdjNIb3N0QXJlYUlEIAorICAgICAgICAgICAgICAgIEFyZWFJRCAKKyAgICAgICAgfSAKKyAKK29zcGZ2M0hvc3RBZGRyZXNzVHlwZSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEluZXRBZGRyZXNzVHlwZSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIGFkZHJlc3MgdHlwZSBvZiBvc3BmdjNIb3N0QWRkcmVzcy4gT25seSBJUHY2IAorICAgICAgICAgICAgYWRkcmVzc2VzIHdpdGhvdXQgem9uZSBpbmRleCBhcmUgZXhwZWN0ZWQuIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAyLCBBcHBlbmRpeCBDLjYgSG9zdCByb3V0ZSBwYXJhbWUtIAorICAgICAgICAgICAgdGVycyIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0hvc3RFbnRyeSAxIH0gCisgCisgCitvc3BmdjNIb3N0QWRkcmVzcyBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEluZXRBZGRyZXNzIChTSVpFICgxNikpIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgSVB2NiBBZGRyZXNzIG9mIHRoZSBIb3N0LiBNdXN0IGJlIGEgR2xvYmFsIAorICAgICAgICAgICAgIG9yIFNpdGUtbG9jYWwgYWRkcmVzcy4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uIDIsIEFwcGVuZGl4IEMuNiBIb3N0IHJvdXRlIHBhcmFtZS0gCisgICAgICAgICAgICB0ZXJzIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzSG9zdEVudHJ5IDIgfSAKKyAKK29zcGZ2M0hvc3RNZXRyaWMgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBNZXRyaWMgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLWNyZWF0ZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBNZXRyaWMgdG8gYmUgYWR2ZXJ0aXNlZC4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uIDIsIEFwcGVuZGl4IEMuNiBIb3N0IHJvdXRlIHBhcmFtZS0gCisgICAgICAgICAgICB0ZXJzIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzSG9zdEVudHJ5IDMgfSAKKyAKK29zcGZ2M0hvc3RTdGF0dXMgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBSb3dTdGF0dXMgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLWNyZWF0ZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoaXMgdmFyaWFibGUgY29udHJvbHMgdGhlIHN0YXR1cyBvZiAgdGhlICBlbi0gCisgICAgICAgICAgICB0cnkuIFRoZSB1c2Ugb2YgUm93U3RhdHVzIGlzIGNvdmVyZWQgaW4gbW9yZSBkZXRhaWwgCisgICAgICAgICAgICBpbiBbNl0uIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzSG9zdEVudHJ5IDQgfSAKKyAKK29zcGZ2M0hvc3RBcmVhSUQgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBBcmVhSUQgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLWNyZWF0ZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBBcmVhIHRoZSBIb3N0IEVudHJ5IGlzIHRvIGJlIGZvdW5kIHdpdGhpbi4gCisgICAgICAgICAgICBCeSAgZGVmYXVsdCwgdGhlIGFyZWEgdGhhdCBhIHN1YnN1bWluZyBPU1BGdjMgaW4tIAorICAgICAgICAgICAgdGVyZmFjZSBpcyBpbiwgb3IgMC4wLjAuMCIgCisgICAgICAgIFJFRkVSRU5DRSAKKyAgICAgICAgICAgICJPU1BGIFZlcnNpb24gMiwgQXBwZW5kaXggQy4yIEFyZWEgcGFyYW1ldGVycyIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0hvc3RFbnRyeSA1IH0gCisgCistLSBPU1BGdjMgSW50ZXJmYWNlIFRhYmxlIAorIAorb3NwZnYzSWZUYWJsZSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFNFUVVFTkNFIE9GIE9zcGZ2M0lmRW50cnkgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBPU1BGdjMgSW50ZXJmYWNlIFRhYmxlIGRlc2NyaWJlcyB0aGUgIGludGVyLSAKKyAgICAgICAgICAgIGZhY2VzIGZyb20gdGhlIHZpZXdwb2ludCBvZiBPU1BGdjMuIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAyLCBBcHBlbmRpeCBDLjMgIFJvdXRlciAgaW50ZXJmYWNlIAorICAgICAgICAgICAgcGFyYW1ldGVycyIgCisgICAgICAgIDo6PSB7IG9zcGZ2M09iamVjdHMgNyB9IAorIAorb3NwZnYzSWZFbnRyeSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIE9zcGZ2M0lmRW50cnkgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBPU1BGdjMgSW50ZXJmYWNlIEVudHJ5IGRlc2NyaWJlcyBvbmUgIGludGVyLSAKKyAgICAgICAgICAgIGZhY2UgZnJvbSB0aGUgdmlld3BvaW50IG9mIE9TUEZ2My4iIAorICAgICAgICBJTkRFWCAgICAgICAgICAgeyBvc3BmdjNJZkluZGV4IH0gCisgICAgICAgIDo6PSB7IG9zcGZ2M0lmVGFibGUgMSB9IAorIAorIAorT3NwZnYzSWZFbnRyeSA6Oj0gU0VRVUVOQ0UgeyAKKyAgICAgICAgb3NwZnYzSWZJbmRleCAKKyAgICAgICAgICAgICAgICBJbnRlcmZhY2VJbmRleCwgCisgICAgICAgIG9zcGZ2M0lmQXJlYUlkIAorICAgICAgICAgICAgICAgIEFyZWFJRCwgCisgICAgICAgIG9zcGZ2M0lmVHlwZSAKKyAgICAgICAgICAgICAgICBJTlRFR0VSLCAKKyAgICAgICAgb3NwZnYzSWZBZG1pblN0YXQgCisgICAgICAgICAgICAgICAgU3RhdHVzLCAKKyAgICAgICAgb3NwZnYzSWZSdHJQcmlvcml0eSAKKyAgICAgICAgICAgICAgICBEZXNpZ25hdGVkUm91dGVyUHJpb3JpdHksIAorICAgICAgICBvc3BmdjNJZlRyYW5zaXREZWxheSAKKyAgICAgICAgICAgICAgICBVcFRvUmVmcmVzaEludGVydmFsLCAKKyAgICAgICAgb3NwZnYzSWZSZXRyYW5zSW50ZXJ2YWwgCisgICAgICAgICAgICAgICAgVXBUb1JlZnJlc2hJbnRlcnZhbCwgCisgICAgICAgIG9zcGZ2M0lmSGVsbG9JbnRlcnZhbCAKKyAgICAgICAgICAgICAgICBIZWxsb1JhbmdlLCAKKyAgICAgICAgb3NwZnYzSWZSdHJEZWFkSW50ZXJ2YWwgCisgICAgICAgICAgICAgICAgIFJvdXRlckRlYWRSYW5nZSwgCisgICAgICAgIG9zcGZ2M0lmUG9sbEludGVydmFsIAorICAgICAgICAgICAgICAgIFVuc2lnbmVkMzIsIAorICAgICAgICBvc3BmdjNJZlN0YXRlIAorICAgICAgICAgICAgICAgIElOVEVHRVIsIAorICAgICAgICBvc3BmdjNJZkRlc2lnbmF0ZWRSb3V0ZXIgCisgICAgICAgICAgICAgICAgUm91dGVySUQsIAorICAgICAgICBvc3BmdjNJZkJhY2t1cERlc2lnbmF0ZWRSb3V0ZXIgCisgICAgICAgICAgICAgICAgUm91dGVySUQsIAorICAgICAgICBvc3BmdjNJZkV2ZW50cyAKKyAgICAgICAgICAgICAgICBDb3VudGVyMzIsIAorICAgICAgICBvc3BmdjNJZlN0YXR1cyAKKyAgICAgICAgICAgICAgICBSb3dTdGF0dXMsIAorICAgICAgICBvc3BmdjNJZk11bHRpY2FzdEZvcndhcmRpbmcgCisgICAgICAgICAgICAgICAgSU5URUdFUiwgCisgICAgICAgIG9zcGZ2M0lmRGVtYW5kIAorICAgICAgICAgICAgICAgIFRydXRoVmFsdWUsIAorICAgICAgICBvc3BmdjNJZk1ldHJpY1ZhbHVlIAorICAgICAgICAgICAgICAgIE1ldHJpYywgCisgICAgICAgIG9zcGZ2M0lmTGlua1Njb3BlTHNhQ291bnQgCisgICAgICAgICAgICAgICAgR2F1Z2UzMiwgCisgICAgICAgIG9zcGZ2M0lmTGlua0xzYUNrc3VtU3VtIAorICAgICAgICAgICAgICAgIEludGVnZXIzMiwgCisgICAgICAgIG9zcGZ2M0lmSW5zdElkIAorICAgICAgICAgICAgICAgIEludGVnZXIzMiwgCisgICAgICAgIG9zcGZ2M0lmRGVtYW5kTmJyUHJvYmUgCisgICAgICAgICAgICAgICAgVHJ1dGhWYWx1ZSwgCisgICAgICAgIG9zcGZ2M0lmRGVtYW5kTmJyUHJvYmVSZXR4TGltaXQgIAorICAgICAgICAgICAgICAgIFVuc2lnbmVkMzIsIAorICAgICAgICBvc3BmdjNJZkRlbWFuZE5iclByb2JlSW50ZXJ2YWwgIAorICAgICAgICAgICAgICAgIFVuc2lnbmVkMzIgCisgICAgICAgIH0gCisgCitvc3BmdjNJZkluZGV4IE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSW50ZXJmYWNlSW5kZXggCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBpbnRlcmZhY2UgaW5kZXggb2YgdGhpcyBPU1BGdjMgaW50ZXJmYWNlLiAKKyAgICAgICAgICAgICBJdCBjb3JyZXNwb25kcyB0byB0aGUgaW50ZXJmYWNlIGluZGV4IG9mIHRoZSAKKyAgICAgICAgICAgICBJUHY2IGludGVyZmFjZSBvbiB3aGljaCBPU1BGdjMgaXMgY29uZmlndXJlZC4iIAorICAgICAgICA6Oj0geyBvc3BmdjNJZkVudHJ5IDEgfSAKKyAKK29zcGZ2M0lmQXJlYUlkIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgQXJlYUlEIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJBIDMyLWJpdCBpbnRlZ2VyIHVuaXF1ZWx5IGlkZW50aWZ5aW5nIHRoZSBhcmVhIAorICAgICAgICAgICAgdG8gIHdoaWNoICB0aGUgIGludGVyZmFjZSAgY29ubmVjdHMuICAgQXJlYSAgSUQgCisgICAgICAgICAgICAwLjAuMC4wIGlzIHVzZWQgZm9yIHRoZSBPU1BGdjMgYmFja2JvbmUuIiAKKyAgICAgICAgREVGVkFMICAgICAgICAgIHsgJzAwMDAwMDAwJ0ggfSAtLSAwLjAuMC4wIAorICAgICAgICA6Oj0geyBvc3BmdjNJZkVudHJ5IDIgfSAKKyAKK29zcGZ2M0lmVHlwZSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIElOVEVHRVIgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyb2FkY2FzdCgxKSwgCisgICAgICAgICAgICAgICAgICAgICAgICBuYm1hKDIpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50VG9Qb2ludCgzKSwgCisgICAgICAgICAgICAgICAgICAgICAgICBwb2ludFRvTXVsdGlwb2ludCg1KSAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLWNyZWF0ZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBPU1BGdjMgaW50ZXJmYWNlIHR5cGUuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzSWZFbnRyeSAzIH0gCisgCitvc3BmdjNJZkFkbWluU3RhdCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFN0YXR1cyAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtY3JlYXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIE9TUEZ2MyBpbnRlcmZhY2UncyAgYWRtaW5pc3RyYXRpdmUgIHN0YXR1cy4gCisgICAgICAgICAgICBUaGUgIHZhbHVlIGZvcm1lZCBvbiB0aGUgaW50ZXJmYWNlLCBhbmQgdGhlIGluLSAKKyAgICAgICAgICAgIHRlcmZhY2Ugd2lsbCBiZSBhZHZlcnRpc2VkIGFzIGFuIGludGVybmFsIHJvdXRlIAorICAgICAgICAgICAgdG8gIHNvbWUgIGFyZWEuICAgVGhlICB2YWx1ZSAnZGlzYWJsZWQnIGRlbm90ZXMgCisgICAgICAgICAgICB0aGF0IHRoZSBpbnRlcmZhY2UgaXMgZXh0ZXJuYWwgdG8gT1NQRnYzLiIgCisgICAgICAgIERFRlZBTCAgICAgICAgICB7IGVuYWJsZWQgfSAKKyAgICAgICAgOjo9IHsgb3NwZnYzSWZFbnRyeSA0IH0gCisgCitvc3BmdjNJZlJ0clByaW9yaXR5IE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgRGVzaWduYXRlZFJvdXRlclByaW9yaXR5IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgIHByaW9yaXR5ICBvZiAgdGhpcyAgaW50ZXJmYWNlLiAgIFVzZWQgIGluIAorICAgICAgICAgICAgbXVsdGktYWNjZXNzICBuZXR3b3JrcywgIHRoaXMgIGZpZWxkIGlzIHVzZWQgaW4gCisgICAgICAgICAgICB0aGUgZGVzaWduYXRlZCByb3V0ZXIgZWxlY3Rpb24gYWxnb3JpdGhtLiAgIFRoZSAKKyAgICAgICAgICAgIHZhbHVlIDAgc2lnbmlmaWVzIHRoYXQgdGhlIHJvdXRlciBpcyBub3QgZWxpZ2ktIAorICAgICAgICAgICAgYmxlIHRvIGJlY29tZSB0aGUgIGRlc2lnbmF0ZWQgIHJvdXRlciAgb24gIHRoaXMgCisgICAgICAgICAgICBwYXJ0aWN1bGFyICBuZXR3b3JrLiAgIEluIHRoZSBldmVudCBvZiBhIHRpZSBpbiAKKyAgICAgICAgICAgIHRoaXMgdmFsdWUsIHJvdXRlcnMgd2lsbCB1c2UgdGhlaXIgUm91dGVyIElEIGFzIAorICAgICAgICAgICAgYSB0aWUgYnJlYWtlci4iIAorICAgICAgICBERUZWQUwgICAgICAgICAgeyAxIH0gCisgICAgICAgIDo6PSB7IG9zcGZ2M0lmRW50cnkgNSB9IAorIAorb3NwZnYzSWZUcmFuc2l0RGVsYXkgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBVcFRvUmVmcmVzaEludGVydmFsIAorICAgICAgICBVTklUUyAgICAgICAgICAgInNlY29uZHMiIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgZXN0aW1hdGVkIG51bWJlciBvZiBzZWNvbmRzICBpdCAgdGFrZXMgIHRvIAorICAgICAgICAgICAgdHJhbnNtaXQgIGEgIGxpbmsgc3RhdGUgdXBkYXRlIHBhY2tldCBvdmVyIHRoaXMgCisgICAgICAgICAgICBpbnRlcmZhY2UuIiAKKyAgICAgICAgREVGVkFMICAgICAgICAgIHsgMSB9IAorICAgICAgICA6Oj0geyBvc3BmdjNJZkVudHJ5IDYgfSAKKyAKK29zcGZ2M0lmUmV0cmFuc0ludGVydmFsIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgVXBUb1JlZnJlc2hJbnRlcnZhbCAKKyAgICAgICAgVU5JVFMgICAgICAgICAgICJzZWNvbmRzIiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtY3JlYXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBzZWNvbmRzIGJldHdlZW4gIGxpbmstc3RhdGUgIGFkLSAKKyAgICAgICAgICAgIHZlcnRpc2VtZW50ICByZXRyYW5zbWlzc2lvbnMsICBmb3IgIGFkamFjZW5jaWVzIAorICAgICAgICAgICAgYmVsb25naW5nIHRvIHRoaXMgIGludGVyZmFjZS4gICBUaGlzICB2YWx1ZSAgaXMgCisgICAgICAgICAgICBhbHNvIHVzZWQgd2hlbiByZXRyYW5zbWl0dGluZyBkYXRhYmFzZSBkZXNjcmlwLSAKKyAgICAgICAgICAgIHRpb24gYW5kIGxpbmstc3RhdGUgcmVxdWVzdCBwYWNrZXRzLiIgCisgICAgICAgIERFRlZBTCAgICAgICAgICB7IDUgfSAKKyAgICAgICAgOjo9IHsgb3NwZnYzSWZFbnRyeSA3IH0gCisgCitvc3BmdjNJZkhlbGxvSW50ZXJ2YWwgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBIZWxsb1JhbmdlIAorICAgICAgICBVTklUUyAgICAgICAgICAgInNlY29uZHMiIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgbGVuZ3RoIG9mIHRpbWUsIGluICBzZWNvbmRzLCAgYmV0d2VlbiAgdGhlIAorICAgICAgICAgICAgSGVsbG8gIHBhY2tldHMgdGhhdCB0aGUgcm91dGVyIHNlbmRzIG9uIHRoZSBpbi0gCisgICAgICAgICAgICB0ZXJmYWNlLiAgVGhpcyB2YWx1ZSBtdXN0IGJlIHRoZSBzYW1lICBmb3IgIGFsbCAKKyAgICAgICAgICAgIHJvdXRlcnMgYXR0YWNoZWQgdG8gYSBjb21tb24gbmV0d29yay4iIAorICAgICAgICBERUZWQUwgICAgICAgICAgeyAxMCB9IAorICAgICAgICA6Oj0geyBvc3BmdjNJZkVudHJ5IDggfSAKKyAKK29zcGZ2M0lmUnRyRGVhZEludGVydmFsIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgUm91dGVyRGVhZFJhbmdlIAorICAgICAgICBVTklUUyAgICAgICAgICAgInNlY29uZHMiIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIHNlY29uZHMgdGhhdCAgYSAgcm91dGVyJ3MgIEhlbGxvIAorICAgICAgICAgICAgcGFja2V0cyAgaGF2ZSAgbm90IGJlZW4gc2VlbiBiZWZvcmUgaXQncyBuZWlnaC0gCisgICAgICAgICAgICBib3JzIGRlY2xhcmUgdGhlIHJvdXRlciBkb3duLiAgVGhpcyAgc2hvdWxkICBiZSAKKyAgICAgICAgICAgIHNvbWUgIG11bHRpcGxlICBvZiAgdGhlICBIZWxsbyAgaW50ZXJ2YWwuICBUaGlzIAorICAgICAgICAgICAgdmFsdWUgbXVzdCBiZSB0aGUgc2FtZSBmb3IgYWxsIHJvdXRlcnMgYXR0YWNoZWQgCisgICAgICAgICAgICB0byBhIGNvbW1vbiBuZXR3b3JrLiIgCisgICAgICAgIERFRlZBTCAgICAgICAgICB7IDQwIH0gCisgICAgICAgIDo6PSB7IG9zcGZ2M0lmRW50cnkgOSB9IAorIAorb3NwZnYzSWZQb2xsSW50ZXJ2YWwgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBVbnNpZ25lZDMyIAorICAgICAgICBVTklUUyAgICAgICAgICAgInNlY29uZHMiIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgbGFyZ2VyIHRpbWUgaW50ZXJ2YWwsIGluIHNlY29uZHMsICBiZXR3ZWVuIAorICAgICAgICAgICAgdGhlICBIZWxsbyAgcGFja2V0cyAgc2VudCAgdG8gIGFuIGluYWN0aXZlIG5vbi0gCisgICAgICAgICAgICBicm9hZGNhc3QgbXVsdGktIGFjY2VzcyBuZWlnaGJvci4iIAorICAgICAgICBERUZWQUwgICAgICAgICAgeyAxMjAgfSAKKyAgICAgICAgOjo9IHsgb3NwZnYzSWZFbnRyeSAxMCB9IAorIAorb3NwZnYzSWZTdGF0ZSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIElOVEVHRVIgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvd24oMSksIAorICAgICAgICAgICAgICAgICAgICAgICAgbG9vcGJhY2soMiksIAorICAgICAgICAgICAgICAgICAgICAgICAgd2FpdGluZygzKSwgCisgICAgICAgICAgICAgICAgICAgICAgICBwb2ludFRvUG9pbnQoNCksIAorICAgICAgICAgICAgICAgICAgICAgICAgZGVzaWduYXRlZFJvdXRlcig1KSwgCisgICAgICAgICAgICAgICAgICAgICAgICBiYWNrdXBEZXNpZ25hdGVkUm91dGVyKDYpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG90aGVyRGVzaWduYXRlZFJvdXRlcig3KSAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgT1NQRnYzIEludGVyZmFjZSBTdGF0ZS4iIAorICAgICAgICA6Oj0geyBvc3BmdjNJZkVudHJ5IDExIH0gCisgCitvc3BmdjNJZkRlc2lnbmF0ZWRSb3V0ZXIgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBSb3V0ZXJJRCAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBSb3V0ZXIgSUQgb2YgdGhlIERlc2lnbmF0ZWQgUm91dGVyLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0lmRW50cnkgMTIgfSAKKyAKK29zcGZ2M0lmQmFja3VwRGVzaWduYXRlZFJvdXRlciBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFJvdXRlcklEIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlICBSb3V0ZXIgSUQgb2YgIHRoZSAgQmFja3VwICAgRGVzaWduYXRlZCAKKyAgICAgICAgICAgIFJvdXRlci4iIAorICAgICAgICA6Oj0geyBvc3BmdjNJZkVudHJ5IDE0IH0gCisgCitvc3BmdjNJZkV2ZW50cyBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIENvdW50ZXIzMiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgdGltZXMgdGhpcyAgT1NQRiAgaW50ZXJmYWNlICBoYXMgCisgICAgICAgICAgICBjaGFuZ2VkIGl0cyBzdGF0ZSwgb3IgYW4gZXJyb3IgaGFzIG9jY3VycmVkLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0lmRW50cnkgMTUgfSAKKyAKKyBvc3BmdjNJZlN0YXR1cyBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFJvd1N0YXR1cyAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtY3JlYXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhpcyB2YXJpYWJsZSBjb250cm9scyB0aGUgc3RhdHVzIG9mICB0aGUgIGVuLSAKKyAgICAgICAgICAgIHRyeS4gVGhlIHVzZSBvZiBSb3dTdGF0dXMgaXMgY292ZXJlZCBpbiBtb3JlIGRldGFpbCBpbiAKKyAgICAgICAgICAgIFs2XS4iIAorICAgICAgICA6Oj0geyBvc3BmdjNJZkVudHJ5IDE3IH0gCisgCitvc3BmdjNJZk11bHRpY2FzdEZvcndhcmRpbmcgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJTlRFR0VSIHsgCisgICAgICAgICAgICAgICAgICAgICAgICBibG9ja2VkKDEpLCAgIC0tIG5vIG11bHRpY2FzdCBmb3J3YXJkaW5nIAorICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGljYXN0KDIpLCAtLSB1c2luZyBtdWx0aWNhc3QgYWRkcmVzcyAKKyAgICAgICAgICAgICAgICAgICAgICAgIHVuaWNhc3QoMykgICAgLS0gdG8gZWFjaCBPU1BGdjMgbmVpZ2hib3IgCisgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgd2F5IG11bHRpY2FzdHMgc2hvdWxkICBmb3J3YXJkZWQgIG9uICB0aGlzIAorICAgICAgICAgICAgaW50ZXJmYWNlOyAgbm90ICBmb3J3YXJkZWQsICBmb3J3YXJkZWQgIGFzIGRhdGEgCisgICAgICAgICAgICBsaW5rIG11bHRpY2FzdHMsIG9yIGZvcndhcmRlZCBhcyBkYXRhIGxpbmsgdW5pLSAKKyAgICAgICAgICAgIGNhc3RzLiAgIERhdGEgbGluayBtdWx0aWNhc3RpbmcgaXMgbm90IG1lYW5pbmctIAorICAgICAgICAgICAgZnVsIG9uIHBvaW50IHRvIHBvaW50IGFuZCBOQk1BIGludGVyZmFjZXMsICBhbmQgCisgICAgICAgICAgICBzZXR0aW5nIG9zcGZ2M011bHRpY2FzdEZvcndhcmRpbmcgdG8gMCBlZmZlY3RpdmUtIAorICAgICAgICAgICAgbHkgZGlzYWJsZXMgYWxsIG11bHRpY2FzdCBmb3J3YXJkaW5nLiIgCisgICAgICAgIERFRlZBTCB7IGJsb2NrZWQgfSAKKyAgICAgICAgOjo9IHsgb3NwZnYzSWZFbnRyeSAxOCB9IAorIAorb3NwZnYzSWZEZW1hbmQgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBUcnV0aFZhbHVlIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJJbmRpY2F0ZXMgd2hldGhlciBEZW1hbmQgT1NQRnYzIHByb2NlZHVyZXMgKGhlbC0gCisgICAgICAgICAgICBsbyBzdXBwcmVzc2lvbiB0byBGVUxMIG5laWdoYm9ycyBhbmQgc2V0dGluZyB0aGUgCisgICAgICAgICAgICBEb05vdEFnZSBmbGFnIG9uIHByb3BhZ2F0ZWQgTFNBcykgc2hvdWxkIGJlIHBlci0gCisgICAgICAgICAgICBmb3JtZWQgb24gdGhpcyBpbnRlcmZhY2UuIiAKKyAgICAgICAgREVGVkFMIHsgZmFsc2UgfSAKKyAgICAgICAgOjo9IHsgb3NwZnYzSWZFbnRyeSAxOSB9IAorIAorb3NwZnYzSWZNZXRyaWNWYWx1ZSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIE1ldHJpYyAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtY3JlYXRlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIG1ldHJpYyBhc3NpZ25lZCB0byB0aGlzIGludGVyZmFjZS4gCisgICAgICAgICAgICAgVGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlIE1ldHJpYyBpcyAKKyAgICAgICAgICAgIFJlZmVyZW5jZSBCYW5kd2lkdGggLyBpZlNwZWVkLiBUaGUgdmFsdWUgb2YgdGhlICAgCisgICAgICAgICAgICByZWZlcmVuY2UgYmFuZHdpZHRoIGlzIGNvbmZpZ3VyZWQgYnkgdGhlIAorICAgICAgICAgICAgb3NwZnYzUmVmZXJlbmNlQmFuZHdpZHRoIG9iamVjdC4iIAorICAgICAgICA6Oj0geyBvc3BmdjNJZkVudHJ5IDIwIH0gCisgCisgb3NwZnYzSWZMaW5rU2NvcGVMc2FDb3VudCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEdhdWdlMzIgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIExpbmstU2NvcGUgbGluay1zdGF0ZSAKKyAgICAgICAgICAgIGFkdmVydGlzZW1lbnRzIGluICB0aGlzICBsaW5rJ3MgbGluay1zdGF0ZSBkYXRhYmFzZS4iIAorICAgICAgICA6Oj0geyBvc3BmdjNJZkVudHJ5IDIxIH0gCisgCisgb3NwZnYzSWZMaW5rTHNhQ2tzdW1TdW0gT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJbnRlZ2VyMzIgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgMzItYml0IHVuc2lnbmVkIHN1bSBvZiB0aGUgTGluay1TY29wZSBsaW5rLXN0YXRlIAorICAgICAgICAgICAgYWR2ZXJ0aXNlbWVudHMnICBMUyAgY2hlY2tzdW1zICBjb250YWluZWQgaW4gdGhpcyAKKyAgICAgICAgICAgIGxpbmsncyBsaW5rLXN0YXRlIGRhdGFiYXNlLiAgVGhlIHN1bSBjYW4gYmUgdXNlZCAKKyAgICAgICAgICAgIHRvIGRldGVybWluZSBpZiAgdGhlcmUgIGhhcyBiZWVuICBhICBjaGFuZ2UgIGluIGEgCisgICAgICAgICAgICByb3V0ZXIncyBsaW5rIHN0YXRlIGRhdGFiYXNlLCBhbmQgdG8gY29tcGFyZSB0aGUgCisgICAgICAgICAgICBsaW5rLXN0YXRlIGRhdGFiYXNlIG9mIHR3byByb3V0ZXJzLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0lmRW50cnkgMjIgfSAKKyAKK29zcGZ2M0lmSW5zdElkIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSW50ZWdlcjMyIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJFbmFibGVzIG11bHRpcGxlIGluc3RhbmNlcyBvZiBPU1BGdjMgdG8gYmUgcnVuIG92ZXIgCisgICAgICAgICAgICBhIHNpbmdsZSBsaW5rLiBFYWNoIHByb3RvY29sIGluc3RhbmNlIHdvdWxkIGJlIGFzc2lnbmVkIAorICAgICAgICAgICAgYSBzZXBhcmF0ZSBJRC4gVGhpcyBJRCBoYXMgbG9jYWwgbGluayBzaWduaWZpY2FuY2UgCisgICAgICAgICAgICBvbmx5LiIgCisgICAgICAgIERFRlZBTCAgICAgICAgICB7IDAgfSAKKyAgICAgICAgOjo9IHsgb3NwZnYzSWZFbnRyeSAyMyB9IAorIAorb3NwZnYzSWZEZW1hbmROYnJQcm9iZSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFRydXRoVmFsdWUgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLWNyZWF0ZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgICAgIiBJbmRpY2F0ZXMgd2hldGhlciBvciBub3QgbmVpZ2hib3IgcHJvYmluZyBpcyAKKyAgICAgICAgICAgICAgICAgZW5hYmxlZCB0byBkZXRlcm1pbmUgd2hldGhlciBvciBub3QgdGhlIG5laWdoYm9yICAKKyAgICAgICAgICAgICAgICAgaXMgaW5hY3RpdmUuIE5laWdoYm9yIHByb2JpbmcgaXMgZGlzYWJsZWQgYnkgIAorICAgICAgICAgICAgICAgICBkZWZhdWx0LiIgCisgICAgICAgIERFRlZBTCB7IGZhbHNlIH0gCisgICAgICAgIDo6PSB7IG9zcGZ2M0lmRW50cnkgMjQgfSAKKyAKKyAgIG9zcGZ2M0lmRGVtYW5kTmJyUHJvYmVSZXR4TGltaXQgT0JKRUNULVRZUEUgIAorICAgICAgIFNZTlRBWCAgICAgICBVbnNpZ25lZDMyICAKKyAgICAgICBVTklUUyAgICAgICAgInNlY29uZHMiICAKKyAgICAgICBNQVgtQUNDRVNTICAgcmVhZC1jcmVhdGUgCisgICAgICAgU1RBVFVTICAgICAgIGN1cnJlbnQgIAorICAgICAgIERFU0NSSVBUSU9OICAKKyAgICAgICAgICAiIFRoZSBudW1iZXIgb2YgY29uc2VjdXRpdmUgTFNBIHJldHJhbnNtaXNzaW9ucyBiZWZvcmUgCisgICAgICAgICAgICB0aGUgbmVpZ2hib3IgaXMgZGVlbWVkIGluYWN0aXZlIGFuZCB0aGUgbmVpZ2hib3IgIAorICAgICAgICAgICAgYWRqYWNlbmN5IGlzIGJyb3VnaHQgZG93bi4iICAKKyAgICAgICBERUZWQUwgICAgICAgICAgeyAxMCB9IAorICAgICAgIDo6PSB7IG9zcGZ2M0lmRW50cnkgMjUgfSAgCisgCisgCisgICBvc3BmdjNJZkRlbWFuZE5iclByb2JlSW50ZXJ2YWwgT0JKRUNULVRZUEUgIAorICAgICAgIFNZTlRBWCAgICAgICBVbnNpZ25lZDMyICAKKyAgICAgICBVTklUUyAgICAgICAgInNlY29uZHMiICAKKyAgICAgICBNQVgtQUNDRVNTICAgcmVhZC1jcmVhdGUgCisgICAgICAgU1RBVFVTICAgICAgIGN1cnJlbnQgIAorICAgICAgIERFU0NSSVBUSU9OICAKKyAgICAgICAgICAiIERlZmluZXMgaG93IG9mdGVuIHRoZSBuZWlnaGJvciB3aWxsIGJlIHByb2JlZC4iICAKKyAgICAgICBERUZWQUwgICAgICAgICAgeyAxMjAgfSAKKyAgICAgICA6Oj0geyBvc3BmdjNJZkVudHJ5IDI2IH0gIAorIAorIAorLS0gT1NQRnYzIFZpcnR1YWwgSW50ZXJmYWNlIFRhYmxlIAorIAorLS0gVGhlIFZpcnR1YWwgSW50ZXJmYWNlIFRhYmxlIGRlc2NyaWJlcyB0aGUgdmlydHVhbCAKKy0tIGxpbmtzIHRoYXQgdGhlIE9TUEZ2MyBQcm9jZXNzIGlzIGNvbmZpZ3VyZWQgdG8gCistLSBjYXJyeSBvbi4gCisgCitvc3BmdjNWaXJ0SWZUYWJsZSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFNFUVVFTkNFIE9GIE9zcGZ2M1ZpcnRJZkVudHJ5IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJJbmZvcm1hdGlvbiBhYm91dCB0aGlzIHJvdXRlcidzIHZpcnR1YWwgaW50ZXItIAorICAgICAgICAgICAgZmFjZXMuIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAgMiwgIEFwcGVuZGl4ICBDLjQgICBWaXJ0dWFsICBsaW5rIAorICAgICAgICAgICAgcGFyYW1ldGVycyIgCisgICAgICAgIDo6PSB7IG9zcGZ2M09iamVjdHMgOCB9IAorIAorb3NwZnYzVmlydElmRW50cnkgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBPc3BmdjNWaXJ0SWZFbnRyeSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiSW5mb3JtYXRpb24gYWJvdXQgYSBzaW5nbGUgVmlydHVhbCBJbnRlcmZhY2UuIiAKKyAgICAgICAgSU5ERVggICAgICAgICAgIHsgb3NwZnYzVmlydElmQXJlYUlkLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzVmlydElmTmVpZ2hib3IgfSAKKyAgICAgICAgOjo9IHsgb3NwZnYzVmlydElmVGFibGUgMSB9IAorIAorT3NwZnYzVmlydElmRW50cnkgOjo9IFNFUVVFTkNFIHsgCisgICAgICAgIG9zcGZ2M1ZpcnRJZkFyZWFJZCAKKyAgICAgICAgICAgICAgICBBcmVhSUQsIAorICAgICAgICBvc3BmdjNWaXJ0SWZOZWlnaGJvciAKKyAgICAgICAgICAgICAgICBSb3V0ZXJJRCwgCisgICAgICAgIG9zcGZ2M1ZpcnRJZkluZGV4IAorICAgICAgICAgICAgICAgIEludGVyZmFjZUluZGV4LCAKKyAgICAgICAgb3NwZnYzVmlydElmVHJhbnNpdERlbGF5IAorICAgICAgICAgICAgICAgIFVwVG9SZWZyZXNoSW50ZXJ2YWwsIAorICAgICAgICBvc3BmdjNWaXJ0SWZSZXRyYW5zSW50ZXJ2YWwgCisgICAgICAgICAgICAgICAgVXBUb1JlZnJlc2hJbnRlcnZhbCwgCisgICAgICAgIG9zcGZ2M1ZpcnRJZkhlbGxvSW50ZXJ2YWwgCisgICAgICAgICAgICAgICAgSGVsbG9SYW5nZSwgCisgICAgICAgIG9zcGZ2M1ZpcnRJZlJ0ckRlYWRJbnRlcnZhbCAKKyAgICAgICAgICAgICAgICAgUm91dGVyRGVhZFJhbmdlLCAKKyAgICAgICAgb3NwZnYzVmlydElmU3RhdGUgCisgICAgICAgICAgICAgICAgSU5URUdFUiwgCisgICAgICAgIG9zcGZ2M1ZpcnRJZkV2ZW50cyAKKyAgICAgICAgICAgICAgICBDb3VudGVyMzIsIAorICAgICAgICBvc3BmdjNWaXJ0SWZTdGF0dXMgCisgICAgICAgICAgICAgICAgUm93U3RhdHVzLCAKKyAgICAgICAgb3NwZnYzVmlydElmTGlua1Njb3BlTHNhQ291bnQgCisgICAgICAgICAgICAgICAgR2F1Z2UzMiwgCisgICAgICAgIG9zcGZ2M1ZpcnRJZkxpbmtMc2FDa3N1bVN1bSAKKyAgICAgICAgICAgICAgICAgICBJbnRlZ2VyMzIgCisgICAgICAgIH0gCisgCitvc3BmdjNWaXJ0SWZBcmVhSWQgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBBcmVhSUQgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSAgVHJhbnNpdCAgQXJlYSAgdGhhdCAgdGhlICAgVmlydHVhbCAgIExpbmsgCisgICAgICAgICAgICB0cmF2ZXJzZXMuICBCeSBkZWZpbml0aW9uLCB0aGlzIGlzIG5vdCAwLjAuMC4wIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzVmlydElmRW50cnkgMSB9IAorIAorb3NwZnYzVmlydElmTmVpZ2hib3IgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBSb3V0ZXJJRCAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIFJvdXRlciBJRCBvZiB0aGUgVmlydHVhbCBOZWlnaGJvci4iIAorICAgICAgICA6Oj0geyBvc3BmdjNWaXJ0SWZFbnRyeSAyIH0gCisgCitvc3BmdjNWaXJ0SWZJbmRleCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEludGVyZmFjZUluZGV4IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgaW50ZXJmYWNlIElEIGFzc2lnbmVkIHRvIHRoaXMgT1NQRnYzIHZpcnR1YWwgCisgICAgICAgICAgICBpbnRlcmZhY2UuIEl0IGlzIGFkdmVydGlzZWQgaW4gSGVsbG8ncyBzZW50IG92ZXIgCisgICAgICAgICAgICB0aGUgdmlydGFsIGxpbmsgYW5kIGluIHRoZSByb3V0ZXIncyByb3V0ZXItTFNBcy4iIAorICAgICAgICA6Oj0geyBvc3BmdjNWaXJ0SWZFbnRyeSAzIH0gCisgCitvc3BmdjNWaXJ0SWZUcmFuc2l0RGVsYXkgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBVcFRvUmVmcmVzaEludGVydmFsIAorICAgICAgICBVTklUUyAgICAgICAgICAgInNlY29uZHMiIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgZXN0aW1hdGVkIG51bWJlciBvZiBzZWNvbmRzICBpdCAgdGFrZXMgIHRvIAorICAgICAgICAgICAgdHJhbnNtaXQgIGEgbGluay0gc3RhdGUgdXBkYXRlIHBhY2tldCBvdmVyIHRoaXMgCisgICAgICAgICAgICBpbnRlcmZhY2UuIiAKKyAgICAgICAgREVGVkFMICAgICAgICAgIHsgMSB9IAorICAgICAgICA6Oj0geyBvc3BmdjNWaXJ0SWZFbnRyeSA0IH0gCisgCitvc3BmdjNWaXJ0SWZSZXRyYW5zSW50ZXJ2YWwgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBVcFRvUmVmcmVzaEludGVydmFsIAorICAgICAgICBVTklUUyAgICAgICAgICAgInNlY29uZHMiIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIHNlY29uZHMgYmV0d2VlbiAgbGluay1zdGF0ZSAgYWQtIAorICAgICAgICAgICAgdmVydGlzZW1lbnQgIHJldHJhbnNtaXNzaW9ucywgIGZvciAgYWRqYWNlbmNpZXMgCisgICAgICAgICAgICBiZWxvbmdpbmcgdG8gdGhpcyAgaW50ZXJmYWNlLiAgIFRoaXMgIHZhbHVlICBpcyAKKyAgICAgICAgICAgIGFsc28gdXNlZCB3aGVuIHJldHJhbnNtaXR0aW5nIGRhdGFiYXNlIGRlc2NyaXAtIAorICAgICAgICAgICAgdGlvbiAgYW5kICBsaW5rLXN0YXRlICByZXF1ZXN0ICBwYWNrZXRzLiAgIFRoaXMgCisgICAgICAgICAgICB2YWx1ZSAgc2hvdWxkICBiZSB3ZWxsIG92ZXIgdGhlIGV4cGVjdGVkIHJvdW5kLSAKKyAgICAgICAgICAgIHRyaXAgdGltZS4iIAorICAgICAgICBERUZWQUwgICAgICAgICAgeyA1IH0gCisgICAgICAgIDo6PSB7IG9zcGZ2M1ZpcnRJZkVudHJ5IDUgfSAKKyAKK29zcGZ2M1ZpcnRJZkhlbGxvSW50ZXJ2YWwgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBIZWxsb1JhbmdlIAorICAgICAgICBVTklUUyAgICAgICAgICAgInNlY29uZHMiIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgbGVuZ3RoIG9mIHRpbWUsIGluICBzZWNvbmRzLCAgYmV0d2VlbiAgdGhlIAorICAgICAgICAgICAgSGVsbG8gIHBhY2tldHMgdGhhdCB0aGUgcm91dGVyIHNlbmRzIG9uIHRoZSBpbi0gCisgICAgICAgICAgICB0ZXJmYWNlLiAgVGhpcyB2YWx1ZSBtdXN0IGJlIHRoZSBzYW1lICBmb3IgIHRoZSAKKyAgICAgICAgICAgIHZpcnR1YWwgbmVpZ2hib3IuIiAKKyAgICAgICAgREVGVkFMICAgICAgICAgIHsgMTAgfSAKKyAgICAgICAgOjo9IHsgb3NwZnYzVmlydElmRW50cnkgNiB9IAorIAorb3NwZnYzVmlydElmUnRyRGVhZEludGVydmFsIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgUm91dGVyRGVhZFJhbmdlIAorICAgICAgICBVTklUUyAgICAgICAgICAgInNlY29uZHMiIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIHNlY29uZHMgdGhhdCAgYSAgcm91dGVyJ3MgIEhlbGxvIAorICAgICAgICAgICAgcGFja2V0cyAgaGF2ZSAgbm90IGJlZW4gc2VlbiBiZWZvcmUgaXQncyBuZWlnaC0gCisgICAgICAgICAgICBib3JzIGRlY2xhcmUgdGhlIHJvdXRlciBkb3duLiAgVGhpcyAgc2hvdWxkICBiZSAKKyAgICAgICAgICAgIHNvbWUgIG11bHRpcGxlICBvZiAgdGhlICBIZWxsbyAgaW50ZXJ2YWwuICBUaGlzIAorICAgICAgICAgICAgdmFsdWUgbXVzdCBiZSB0aGUgc2FtZSBmb3IgdGhlICB2aXJ0dWFsICBuZWlnaC0gCisgICAgICAgICAgICBib3IuIiAKKyAgICAgICAgREVGVkFMICAgICAgICAgIHsgNjAgfSAKKyAgICAgICAgOjo9IHsgb3NwZnYzVmlydElmRW50cnkgNyB9IAorIAorb3NwZnYzVmlydElmU3RhdGUgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJTlRFR0VSIHsgCisgICAgICAgICAgICAgICAgICAgICAgICBkb3duKDEpLCAtLSB0aGVzZSB1c2UgdGhlIHNhbWUgZW5jb2RpbmcgCisgICAgICAgICAgICAgICAgICAgICAgICBwb2ludFRvUG9pbnQoNCkgLS0gYXMgdGhlIG9zcGZ2M0lmVGFibGUgCisgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiT1NQRiB2aXJ0dWFsIGludGVyZmFjZSBzdGF0ZXMuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzVmlydElmRW50cnkgOCB9IAorIAorb3NwZnYzVmlydElmRXZlbnRzIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgQ291bnRlcjMyIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBzdGF0ZSBjaGFuZ2VzIG9yIGVycm9yIGV2ZW50cyBvbiAKKyAgICAgICAgICAgIHRoaXMgVmlydHVhbCBMaW5rIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzVmlydElmRW50cnkgOSB9IAorIAorb3NwZnYzVmlydElmU3RhdHVzIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgUm93U3RhdHVzIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGlzIHZhcmlhYmxlIGNvbnRyb2xzIHRoZSBzdGF0dXMgb2YgIHRoZSAgZW4tIAorICAgICAgICAgICAgdHJ5LiBUaGUgdXNlIG9mIFJvd1N0YXR1cyBpcyBjb3ZlcmVkIGluIG1vcmUgZGV0YWlsIAorICAgICAgICAgICAgaW4gWzZdLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M1ZpcnRJZkVudHJ5IDEwIH0gCisgCitvc3BmdjNWaXJ0SWZMaW5rU2NvcGVMc2FDb3VudCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEdhdWdlMzIgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIExpbmstU2NvcGUgbGluay1zdGF0ZSAKKyAgICAgICAgICAgIGFkdmVydGlzZW1lbnRzIGluICB0aGlzICB2aXJ0dWFsIGxpbmsncyBsaW5rLXN0YXRlIAorICAgICAgICAgICAgZGF0YWJhc2UuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzVmlydElmRW50cnkgMTEgfSAKKyAKK29zcGZ2M1ZpcnRJZkxpbmtMc2FDa3N1bVN1bSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEludGVnZXIzMiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSAzMi1iaXQgdW5zaWduZWQgc3VtIG9mIHRoZSBMaW5rLVNjb3BlIGxpbmstc3RhdGUgCisgICAgICAgICAgICBhZHZlcnRpc2VtZW50cycgIExTICBjaGVja3N1bXMgIGNvbnRhaW5lZCBpbiB0aGlzIAorICAgICAgICAgICAgdmlydHVhbCBsaW5rJ3MgbGluay1zdGF0ZSBkYXRhYmFzZS4gIFRoZSBzdW0gY2FuIGJlIHVzZWQgCisgICAgICAgICAgICB0byBkZXRlcm1pbmUgaWYgIHRoZXJlICBoYXMgYmVlbiAgYSAgY2hhbmdlICBpbiBhIAorICAgICAgICAgICAgcm91dGVyJ3MgbGluayBzdGF0ZSBkYXRhYmFzZSwgYW5kIHRvIGNvbXBhcmUgdGhlIAorICAgICAgICAgICAgbGluay1zdGF0ZSBkYXRhYmFzZSBvZiB0d28gcm91dGVycy4iIAorICAgICAgICA6Oj0geyBvc3BmdjNWaXJ0SWZFbnRyeSAxMiB9IAorIAorIAorLS0gT1NQRnYzIE5laWdoYm9yIFRhYmxlIAorIAorLS0gVGhlIE9TUEZ2MyBOZWlnaGJvciBUYWJsZSBkZXNjcmliZXMgYWxsIG5laWdoYm9ycyBpbiAKKy0tIHRoZSBsb2NhbGl0eSBvZiB0aGUgc3ViamVjdCByb3V0ZXIuIAorIAorb3NwZnYzTmJyVGFibGUgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBTRVFVRU5DRSBPRiBPc3BmdjNOYnJFbnRyeSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiQSB0YWJsZSBvZiBub24tdmlydHVhbCBuZWlnaGJvciBpbmZvcm1hdGlvbi4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uIDIsIFNlY3Rpb24gMTAgIFRoZSAgTmVpZ2hib3IgIERhdGEgCisgICAgICAgICAgICBTdHJ1Y3R1cmUiIAorICAgICAgICA6Oj0geyBvc3BmdjNPYmplY3RzIDkgfSAKKyAKK29zcGZ2M05ickVudHJ5IE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgT3NwZnYzTmJyRW50cnkgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBpbmZvcm1hdGlvbiByZWdhcmRpbmcgYSBzaW5nbGUgbmVpZ2hib3IuIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAyLCBTZWN0aW9uIDEwICBUaGUgIE5laWdoYm9yICBEYXRhIAorICAgICAgICAgICAgU3RydWN0dXJlIiAKKyAgICAgICAgSU5ERVggICAgICAgICAgIHsgb3NwZnYzTmJySWZJbmRleCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M05iclJ0cklkIH0gCisgICAgICAgIDo6PSB7IG9zcGZ2M05iclRhYmxlIDEgfSAKKyAKK09zcGZ2M05ickVudHJ5IDo6PSBTRVFVRU5DRSB7IAorICAgICAgICBvc3BmdjNOYnJJZkluZGV4IAorICAgICAgICAgICAgICAgIEludGVyZmFjZUluZGV4LCAKKyAgICAgICAgb3NwZnYzTmJyUnRySWQgCisgICAgICAgICAgICAgICAgUm91dGVySUQsIAorICAgICAgICBvc3BmdjNOYnJBZGRyZXNzVHlwZSAKKyAgICAgICAgICAgICAgICBJbmV0QWRkcmVzc1R5cGUsIAorICAgICAgICBvc3BmdjNOYnJBZGRyZXNzIAorICAgICAgICAgICAgICAgIEluZXRBZGRyZXNzLCAgICAgICAgICAgICAKKyAgICAgICAgb3NwZnYzTmJyT3B0aW9ucyAKKyAgICAgICAgICAgICAgICBJbnRlZ2VyMzIsIAorICAgICAgICBvc3BmdjNOYnJQcmlvcml0eSAKKyAgICAgICAgICAgICAgICBEZXNpZ25hdGVkUm91dGVyUHJpb3JpdHksIAorICAgICAgICBvc3BmdjNOYnJTdGF0ZSAKKyAgICAgICAgICAgICAgICBJTlRFR0VSLCAKKyAgICAgICAgb3NwZnYzTmJyRXZlbnRzIAorICAgICAgICAgICAgICAgIENvdW50ZXIzMiwgCisgICAgICAgIG9zcGZ2M05ickxzUmV0cmFuc1FMZW4gCisgICAgICAgICAgICAgICAgR2F1Z2UzMiwgCisgICAgICAgIG9zcGZ2M05ickhlbGxvU3VwcHJlc3NlZCAKKyAgICAgICAgICAgICAgICBUcnV0aFZhbHVlLCAKKyAgICAgICAgb3NwZnYzTmJySWZJZCAKKyAgICAgICAgICAgICAgICBJbnRlcmZhY2VJbmRleCwgCisgICAgICAgIG9zcGZ2M05iclJlc3RhcnRIZWxwZXJTdGF0dXMgIAorICAgICAgICAgICAgICAgIElOVEVHRVIsICAKKyAgICAgICAgb3NwZnYzTmJyUmVzdGFydEhlbHBlckFnZSAgCisgICAgICAgICAgICAgICAgVXBUb1JlZnJlc2hJbnRlcnZhbCwgIAorICAgICAgICBvc3BmdjNOYnJSZXN0YXJ0SGVscGVyRXhpdFJlYXNvbiAgCisgICAgICAgICAgICAgICAgSU5URUdFUiAKKyAgICAgICAgfSAKKyAKK29zcGZ2M05icklmSW5kZXggT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJbnRlcmZhY2VJbmRleCAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIGxvY2FsIGxpbmsgSUQgb2YgdGhlIGxpbmsgb3ZlciB3aGljaCB0aGUgCisgICAgICAgICAgICAgbmVpZ2hib3IgY2FuIGJlIHJlYWNoZWQuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzTmJyRW50cnkgMSB9IAorIAorb3NwZnYzTmJyUnRySWQgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBSb3V0ZXJJRCAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiQSAzMi1iaXQgaW50ZWdlciAocmVwcmVzZW50ZWQgYXMgYSB0eXBlICBJcEFkLSAKKyAgICAgICAgICAgIGRyZXNzKSAgdW5pcXVlbHkgIGlkZW50aWZ5aW5nICB0aGUgIG5laWdoYm9yaW5nIAorICAgICAgICAgICAgcm91dGVyIGluIHRoZSBBdXRvbm9tb3VzIFN5c3RlbS4iIAorICAgICAgICA6Oj0geyBvc3BmdjNOYnJFbnRyeSAyIH0gCisgCitvc3BmdjNOYnJBZGRyZXNzVHlwZSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEluZXRBZGRyZXNzVHlwZSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBhZGRyZXNzIHR5cGUgb2Ygb3NwZnYzTmJyQWRkcmVzcy4gT25seSBJUHY2IAorICAgICAgICAgICAgYWRkcmVzc2VzIHdpdGhvdXQgem9uZSBpbmRleCBhcmUgZXhwZWN0ZWQuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzTmJyRW50cnkgMyB9IAorIAorb3NwZnYzTmJyQWRkcmVzcyBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEluZXRBZGRyZXNzIChTSVpFICgxNikpIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIElQdjYgYWRkcmVzcyBvZiB0aGUgbmVpZ2hib3IgYXNzb2NpYXRlZCB3aXRoIAorICAgICAgICAgICAgdGhlIGxvY2FsIGxpbmsuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzTmJyRW50cnkgNCB9IAorIAorb3NwZnYzTmJyT3B0aW9ucyBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEludGVnZXIzMiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIkEgQml0IE1hc2sgY29ycmVzcG9uZGluZyB0byB0aGUgbmVpZ2hib3IncyBvcC0gCisgICAgICAgICAgICB0aW9ucyBmaWVsZC4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uIDMsIEFwcGVuZGl4IEEuMiB0aGUgT3B0aW9ucyBmaWVsZCIgCisgICAgICAgIDo6PSB7IG9zcGZ2M05ickVudHJ5IDUgfSAKKyAKK29zcGZ2M05iclByaW9yaXR5IE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgRGVzaWduYXRlZFJvdXRlclByaW9yaXR5IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIHByaW9yaXR5IG9mIHRoaXMgbmVpZ2hib3IgaW4gdGhlIGRlc2lnbmF0LSAKKyAgICAgICAgICAgIGVkIHJvdXRlciBlbGVjdGlvbiBhbGdvcml0aG0uICBUaGUgdmFsdWUgMCBzaWctIAorICAgICAgICAgICAgbmlmaWVzIHRoYXQgdGhlIG5laWdoYm9yIGlzIG5vdCBlbGlnaWJsZSB0byBiZS0gCisgICAgICAgICAgICBjb21lICB0aGUgIGRlc2lnbmF0ZWQgcm91dGVyIG9uIHRoaXMgcGFydGljdWxhciAKKyAgICAgICAgICAgIG5ldHdvcmsuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzTmJyRW50cnkgNiB9IAorIAorb3NwZnYzTmJyU3RhdGUgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJTlRFR0VSIHsgCisgICAgICAgICAgICAgICAgICAgICAgICBkb3duKDEpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGF0dGVtcHQoMiksIAorICAgICAgICAgICAgICAgICAgICAgICAgaW5pdCgzKSwgCisgICAgICAgICAgICAgICAgICAgICAgICB0d29XYXkoNCksIAorICAgICAgICAgICAgICAgICAgICAgICAgZXhjaGFuZ2VTdGFydCg1KSwgCisgICAgICAgICAgICAgICAgICAgICAgICBleGNoYW5nZSg2KSwgCisgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nKDcpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGwoOCkgCisgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIFN0YXRlIG9mIHRoZSByZWxhdGlvbnNoaXAgd2l0aCB0aGlzIE5laWdoLSAKKyAgICAgICAgICAgIGJvci4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uIDIsIFNlY3Rpb24gMTAuMSBOZWlnaGJvciBTdGF0ZXMiIAorICAgICAgICA6Oj0geyBvc3BmdjNOYnJFbnRyeSA3IH0gCisgCitvc3BmdjNOYnJFdmVudHMgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBDb3VudGVyMzIgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIHRpbWVzIHRoaXMgbmVpZ2hib3IgcmVsYXRpb25zaGlwIAorICAgICAgICAgICAgaGFzIGNoYW5nZWQgc3RhdGUsIG9yIGFuIGVycm9yIGhhcyBvY2N1cnJlZC4iIAorICAgICAgICA6Oj0geyBvc3BmdjNOYnJFbnRyeSA4IH0gCisgCitvc3BmdjNOYnJMc1JldHJhbnNRTGVuIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgR2F1Z2UzMiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSAgY3VycmVudCAgbGVuZ3RoICBvZiAgdGhlICAgcmV0cmFuc21pc3Npb24gCisgICAgICAgICAgICBxdWV1ZS4iIAorICAgICAgICA6Oj0geyBvc3BmdjNOYnJFbnRyeSA5IH0gCisgCitvc3BmdjNOYnJIZWxsb1N1cHByZXNzZWQgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBUcnV0aFZhbHVlIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiSW5kaWNhdGVzIHdoZXRoZXIgSGVsbG9zIGFyZSBiZWluZyAgc3VwcHJlc3NlZCAKKyAgICAgICAgICAgIHRvIHRoZSBuZWlnaGJvciIgCisgICAgICAgIDo6PSB7IG9zcGZ2M05ickVudHJ5IDEwIH0gCisgCitvc3BmdjNOYnJJZklkIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSW50ZXJmYWNlSW5kZXggCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgaW50ZXJmYWNlIElEIHRoYXQgdGhlIG5laWdoYm9yIGFkdmVydGlzZXMgCisgICAgICAgICAgICBpbiBpdHMgSGVsbG8gUGFja2V0cyBvbiB0aGlzIGxpbmssIHRoYXQgaXMsIHRoZSAKKyAgICAgICAgICAgIG5laWdoYm9yJ3MgbG9jYWwgaW50ZXJmYWNlIGluZGV4LiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M05ickVudHJ5IDExIH0gCisgCitvc3BmdjNOYnJSZXN0YXJ0SGVscGVyU3RhdHVzIE9CSkVDVC1UWVBFICAKKyAgICAgICBTWU5UQVggICAgICAgSU5URUdFUiB7IG5vdEhlbHBpbmcgKDEpLCAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwaW5nICgyKSAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAgCisgICAgICAgTUFYLUFDQ0VTUyAgIHJlYWQtb25seSAgCisgICAgICAgU1RBVFVTICAgICAgIGN1cnJlbnQgIAorICAgICAgIERFU0NSSVBUSU9OICAKKyAgICAgICAgICAiSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHJvdXRlciBpcyBhY3RpbmcgIAorICAgICAgICAgIGFzIGEgaGl0bGVzcyByZXN0YXJ0IGhlbHBlciBmb3IgdGhlIG5laWdoYm9yLiIgIAorICAgICAgICAgIDo6PSB7IG9zcGZ2M05ickVudHJ5IDEyIH0gIAorICAgIAorb3NwZnYzTmJyUmVzdGFydEhlbHBlckFnZSBPQkpFQ1QtVFlQRSAgCisgICAgICAgU1lOVEFYICAgICAgIFVwVG9SZWZyZXNoSW50ZXJ2YWwgCisgICAgICAgVU5JVFMgICAgICAgICJzZWNvbmRzIiAgCisgICAgICAgTUFYLUFDQ0VTUyAgIHJlYWQtb25seSAgCisgICAgICAgU1RBVFVTICAgICAgIGN1cnJlbnQgIAorICAgICAgIERFU0NSSVBUSU9OICAKKyAgICAgICAgICAiUmVtYWluaW5nIHRpbWUgaW4gY3VycmVudCBPU1BGIGhpdGxlc3MgcmVzdGFydCAgCisgICAgICAgICAgaW50ZXJ2YWwsIGlmIHRoZSByb3V0ZXIgaXMgYWN0aW5nIGFzIGEgcmVzdGFydCAgCisgICAgICAgICAgaGVscGVyIGZvciB0aGUgbmVpZ2hib3IuIiAgCisgICAgICAgOjo9IHsgb3NwZnYzTmJyRW50cnkgMTMgfSAgCisgICAgCitvc3BmdjNOYnJSZXN0YXJ0SGVscGVyRXhpdFJlYXNvbiBPQkpFQ1QtVFlQRSAgCisgICAgICAgU1lOVEFYICAgICAgIElOVEVHRVIgeyBub25lICgxKSwgICAgICAgICAgIC0tIG5vdCBhdHRlbXB0ZWQgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5Qcm9ncmVzcyAoMiksICAgICAtLSByZXN0YXJ0IGluICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gcHJvZ3Jlc3MgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGVkICgzKSwgICAgICAtLSBzdWNjZXNzZnVsbHkgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBjb21wbGV0ZWQgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZWRPdXQgKDQpLCAgICAgICAtLSB0aW1lZCBvdXQgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wb2xvZ3lDaGFuZ2VkICg1KSAtLSBhYm9ydGVkIGR1ZSB0byAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIHRvcG9sb2d5ICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gY2hhbmdlLiAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAgCisgICAgICAgTUFYLUFDQ0VTUyAgIHJlYWQtb25seSAgCisgICAgICAgU1RBVFVTICAgICAgIGN1cnJlbnQgIAorICAgICAgIERFU0NSSVBUSU9OICAKKyAgICAgICAgICAiRGVzY3JpYmVzIHRoZSBvdXRjb21lIG9mIHRoZSBsYXN0IGF0dGVtcHQgYXQgYWN0aW5nICAKKyAgICAgICAgICAgYXMgYSBoaXRsZXNzIHJlc3RhcnQgaGVscGVyIGZvciB0aGUgbmVpZ2hib3IuIiAgCisgICAgOjo9IHsgb3NwZnYzTmJyRW50cnkgMTQgfSAKKyAKKyAKKy0tIE9TUEZ2MyBOQk1BIE5laWdoYm9yIFRhYmxlIAorIAorLS0gVGhlIE9TUEZ2MyBOQk1BIE5laWdoYm9yIFRhYmxlIGRlc2NyaWJlcyBhbGwgY29uZmlndXJlZCAKKy0tIE5CTUEgbmVpZ2hib3JzIGFuZCBuZWlnaGJvcnMgZHluYW1pY2FsbHkgZGlzY292ZXJlZCBieSAKKy0tIGxvd2VyLWxldmVsIHByb3RvY29scyBzdWNoIGFzIEludmVyc2UgTmVpZ2hib3IgRGlzY292ZXJ5LiAKKyAKK29zcGZ2M05ibWFOYnJUYWJsZSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFNFUVVFTkNFIE9GIE9zcGZ2M05ibWFOYnJFbnRyeSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiQSB0YWJsZSBvZiBjb25maWd1cmVkIG5vbi12aXJ0dWFsIG5laWdoYm9yIAorICAgICAgICAgICAgaW5mb3JtYXRpb24gYW5kIG5laWdoYm9ycyBkeW5hbWljYWxseSBkaXNjb3ZlcmVkIAorICAgICAgICAgICAgYnkgbG93ZXItbGV2ZWwgcHJvdG9jb2xzIHN1Y2ggYXMgSW52ZXJzZSBOZWlnaGJvciAKKyAgICAgICAgICAgIERpc2NvdmVyeS4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uIDIsIFNlY3Rpb24gMTAgIFRoZSAgTmVpZ2hib3IgIERhdGEgCisgICAgICAgICAgICBTdHJ1Y3R1cmUiIAorICAgICAgICA6Oj0geyBvc3BmdjNPYmplY3RzIDEwIH0gCisgCitvc3BmdjNOYm1hTmJyRW50cnkgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBPc3BmdjNOYm1hTmJyRW50cnkgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBpbmZvcm1hdGlvbiByZWdhcmRpbmcgYSBzaW5nbGUgY29uZmlndXJlZCAKKyAgICAgICAgICAgIG5laWdoYm9yIG9yIG5laWdoYm9yIGRpc2NvdmVyZWQgYnkgbG93ZXItbGV2ZWwgCisgICAgICAgICAgICBwcm90b2NvbHMgc3VjaCBhcyBJbnZlcnNlIE5laWdoYm9yIERpc2NvdmVyeS4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uIDIsIFNlY3Rpb24gMTAgIFRoZSAgTmVpZ2hib3IgIERhdGEgCisgICAgICAgICAgICBTdHJ1Y3R1cmUiIAorICAgICAgICBJTkRFWCAgICAgICAgICAgeyBvc3BmdjNOYm1hTmJySWZJbmRleCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M05ibWFOYnJBZGRyZXNzVHlwZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M05ibWFOYnJBZGRyZXNzIH0gCisgICAgICAgIDo6PSB7IG9zcGZ2M05ibWFOYnJUYWJsZSAxIH0gCisgCitPc3BmdjNOYm1hTmJyRW50cnkgOjo9IFNFUVVFTkNFIHsgCisgICAgICAgIG9zcGZ2M05ibWFOYnJJZkluZGV4IAorICAgICAgICAgICAgICAgIEludGVyZmFjZUluZGV4LCAKKyAgICAgICAgb3NwZnYzTmJtYU5ickFkZHJlc3NUeXBlIAorICAgICAgICAgICAgICAgIEluZXRBZGRyZXNzVHlwZSwgCisgICAgICAgIG9zcGZ2M05ibWFOYnJBZGRyZXNzIAorICAgICAgICAgICAgICAgIEluZXRBZGRyZXNzLCAKKyAgICAgICAgb3NwZnYzTmJtYU5iclByaW9yaXR5IAorICAgICAgICAgICAgICAgIERlc2lnbmF0ZWRSb3V0ZXJQcmlvcml0eSwgCisgICAgICAgIG9zcGZ2M05ibWFOYnJSdHJJZCAKKyAgICAgICAgICAgICAgICBSb3V0ZXJJRCwgCisgICAgICAgIG9zcGZ2M05ibWFOYnJTdGF0ZSAKKyAgICAgICAgICAgICAgICBJTlRFR0VSLCAKKyAgICAgICAgb3NwZnYzTmJtYU5iclN0b3JhZ2VUeXBlIAorICAgICAgICAgICAgICAgIFN0b3JhZ2VUeXBlLCAKKyAgICAgICAgb3NwZnYzTmJtYU5iclN0YXR1cyAKKyAgICAgICAgICAgICAgICBSb3dTdGF0dXMgCisgICAgICAgIH0gCisgCitvc3BmdjNOYm1hTmJySWZJbmRleCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEludGVyZmFjZUluZGV4IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgbG9jYWwgbGluayBJRCBvZiB0aGUgbGluayBvdmVyIHdoaWNoIHRoZSAKKyAgICAgICAgICAgICBuZWlnaGJvciBjYW4gYmUgcmVhY2hlZC4iIAorICAgICAgICA6Oj0geyBvc3BmdjNOYm1hTmJyRW50cnkgMSB9IAorIAorb3NwZnYzTmJtYU5ickFkZHJlc3NUeXBlIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSW5ldEFkZHJlc3NUeXBlIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgYWRkcmVzcyB0eXBlIG9mIG9zcGZ2M05ickFkZHJlc3MuIE9ubHkgSVB2NiAKKyAgICAgICAgICAgIGFkZHJlc3NlcyB3aXRob3V0IHpvbmUgaW5kZXggYXJlIGV4cGVjdGVkLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M05ibWFOYnJFbnRyeSAyIH0gCisgCitvc3BmdjNOYm1hTmJyQWRkcmVzcyBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEluZXRBZGRyZXNzIChTSVpFICgxNikpIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgSVB2NiBhZGRyZXNzIG9mIHRoZSBuZWlnaGJvciBhc3NvY2lhdGVkIHdpdGggCisgICAgICAgICAgICB0aGUgbG9jYWwgbGluay4iIAorICAgICAgICA6Oj0geyBvc3BmdjNOYm1hTmJyRW50cnkgMyB9IAorIAorb3NwZnYzTmJtYU5iclByaW9yaXR5IE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgRGVzaWduYXRlZFJvdXRlclByaW9yaXR5IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgcHJpb3JpdHkgb2YgdGhpcyBuZWlnaGJvciBpbiB0aGUgZGVzaWduYXQtIAorICAgICAgICAgICAgZWQgcm91dGVyIGVsZWN0aW9uIGFsZ29yaXRobS4gVGhlIHZhbHVlIDAgc2lnLSAKKyAgICAgICAgICAgIG5pZmllcyB0aGF0IHRoZSBuZWlnaGJvciBpcyBub3QgZWxpZ2libGUgdG8gYmUtIAorICAgICAgICAgICAgY29tZSAgdGhlICBkZXNpZ25hdGVkIHJvdXRlciBvbiB0aGlzIHBhcnRpY3VsYXIgCisgICAgICAgICAgICBuZXR3b3JrLiIgCisgICAgICAgIERFRlZBTCAgICAgICAgICB7IDEgfSAKKyAgICAgICAgOjo9IHsgb3NwZnYzTmJtYU5ickVudHJ5IDQgfSAKKyAKK29zcGZ2M05ibWFOYnJSdHJJZCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFJvdXRlcklEIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiQSAzMi1iaXQgaW50ZWdlciAocmVwcmVzZW50ZWQgYXMgYSB0eXBlIElwQWQtIAorICAgICAgICAgICAgZHJlc3MpIHVuaXF1ZWx5IGlkZW50aWZ5aW5nIHRoZSBuZWlnaGJvcmluZyAKKyAgICAgICAgICAgIHJvdXRlciBpbiB0aGUgQXV0b25vbW91cyBTeXN0ZW0uIEEgdmFsdWUgb2YgCisgICAgICAgICAgICAwLjAuMC4wIGlzIHJldHVybmVkIHVudGlsIGEgSGVsbG8gaXMgcmVjZWl2ZWQgCisgICAgICAgICAgICBmcm9tIHRoZSBjb25maWd1cmVkIG5laWdoYm9yLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M05ibWFOYnJFbnRyeSA1IH0gCisgCitvc3BmdjNOYm1hTmJyU3RhdGUgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJTlRFR0VSIHsgCisgICAgICAgICAgICAgICAgICAgICAgICBkb3duKDEpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGF0dGVtcHQoMiksIAorICAgICAgICAgICAgICAgICAgICAgICAgaW5pdCgzKSwgCisgICAgICAgICAgICAgICAgICAgICAgICB0d29XYXkoNCksIAorICAgICAgICAgICAgICAgICAgICAgICAgZXhjaGFuZ2VTdGFydCg1KSwgCisgICAgICAgICAgICAgICAgICAgICAgICBleGNoYW5nZSg2KSwgCisgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nKDcpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGwoOCkgCisgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIFN0YXRlIG9mIHRoZSByZWxhdGlvbnNoaXAgd2l0aCB0aGlzIE5laWdoLSAKKyAgICAgICAgICAgIGJvci4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uIDIsIFNlY3Rpb24gMTAuMSBOZWlnaGJvciBTdGF0ZXMiIAorICAgICAgICA6Oj0geyBvc3BmdjNOYm1hTmJyRW50cnkgNiB9IAorIAorb3NwZnYzTmJtYU5iclN0b3JhZ2VUeXBlIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgU3RvcmFnZVR5cGUgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLWNyZWF0ZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBzdG9yYWdlIHR5cGUgZm9yIHRoaXMgY29uY2VwdHVhbCByb3cuIAorICAgICAgICAgICAgQ29uY2VwdHVhbCByb3dzIGhhdmluZyB0aGUgdmFsdWUgJ3Blcm1hbmVudCcgbmVlZCBub3QgCisgICAgICAgICAgICBhbGxvdyB3cml0ZS1hY2Nlc3MgdG8gYW55IGNvbHVtbmFyIG9iamVjdHMgaW4gdGhlIHJvdy4gCisgICAgICAgICAgICBNYW51YWxseSBjb25maWd1cmVkIGVudHJpZXMgd2lsbCBoYXZlIGEgc3RvcmFnZSB0eXBlIAorICAgICAgICAgICAgb2Ygbm9uVm9sYXRpbGUgd2hpbGUgZW50cmllcyBkeW5hbWljYWxseSBjcmVhdGVkIGFzIGEgCisgICAgICAgICAgICByZXN1bHQgb2YgYSBsb3dlci1sZXZlbCBwcm90b2NvbCBzdWNoIGFzIEludmVyc2UgCisgICAgICAgICAgICBOZWlnaGJvciBEaXNjb3Zlcnkgd2lsbCBoYXZlIGEgc3RvcmFnZSB0eXBlIG9mIAorICAgICAgICAgICAgdm9sYXRpbGUuIiAKKyAgICAgICAgREVGVkFMICAgICAgICAgIHsgbm9uVm9sYXRpbGUgfSAKKyAgICAgICAgOjo9IHsgb3NwZnYzTmJtYU5ickVudHJ5IDcgfSAKKyAKK29zcGZ2M05ibWFOYnJTdGF0dXMgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBSb3dTdGF0dXMgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLWNyZWF0ZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoaXMgdmFyaWFibGUgY29udHJvbHMgdGhlIHN0YXR1cyBvZiB0aGUgZW4tIAorICAgICAgICAgICAgdHJ5LiBUaGUgdXNlIG9mIFJvd1N0YXR1cyBpcyBjb3ZlcmVkIGluIG1vcmUgZGV0YWlsIAorICAgICAgICAgICAgaW4gWzZdLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M05ibWFOYnJFbnRyeSA4IH0gCisgCistLSBPU1BGdjMgVmlydHVhbCBOZWlnaGJvciBUYWJsZSAKKyAKKy0tIFRoaXMgdGFibGUgZGVzY3JpYmVzIGFsbCB2aXJ0dWFsIG5laWdoYm9ycy4gCistLSBTaW5jZSBWaXJ0dWFsIExpbmtzIGFyZSBjb25maWd1cmVkIGluIHRoZSAKKy0tIHZpcnR1YWwgaW50ZXJmYWNlIHRhYmxlLCB0aGlzIHRhYmxlIGlzIHJlYWQtb25seS4gCisgCitvc3BmdjNWaXJ0TmJyVGFibGUgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBTRVFVRU5DRSBPRiBPc3BmdjNWaXJ0TmJyRW50cnkgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIkEgdGFibGUgb2YgdmlydHVhbCBuZWlnaGJvciBpbmZvcm1hdGlvbi4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uIDIsIFNlY3Rpb24gMTUgVmlydHVhbCBMaW5rcyIgCisgICAgICAgIDo6PSB7IG9zcGZ2M09iamVjdHMgMTEgfSAKKyAKK29zcGZ2M1ZpcnROYnJFbnRyeSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIE9zcGZ2M1ZpcnROYnJFbnRyeSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVmlydHVhbCBuZWlnaGJvciBpbmZvcm1hdGlvbi4iIAorICAgICAgICBJTkRFWCAgICAgICAgICAgeyBvc3BmdjNWaXJ0TmJyQXJlYSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M1ZpcnROYnJSdHJJZCB9IAorICAgICAgICA6Oj0geyBvc3BmdjNWaXJ0TmJyVGFibGUgMSB9IAorIAorT3NwZnYzVmlydE5ickVudHJ5IDo6PSBTRVFVRU5DRSB7IAorICAgICAgICBvc3BmdjNWaXJ0TmJyQXJlYSAKKyAgICAgICAgICAgICAgICBBcmVhSUQsIAorICAgICAgICBvc3BmdjNWaXJ0TmJyUnRySWQgCisgICAgICAgICAgICAgICAgUm91dGVySUQsIAorICAgICAgICBvc3BmdjNWaXJ0TmJySWZJbmRleCAKKyAgICAgICAgICAgICAgICBJbnRlcmZhY2VJbmRleCwgCisgICAgICAgIG9zcGZ2M1ZpcnROYnJBZGRyZXNzVHlwZSAKKyAgICAgICAgICAgICAgICBJbmV0QWRkcmVzc1R5cGUsIAorICAgICAgICBvc3BmdjNWaXJ0TmJyQWRkcmVzcyAKKyAgICAgICAgICAgICAgICBJbmV0QWRkcmVzcywgCisgICAgICAgIG9zcGZ2M1ZpcnROYnJPcHRpb25zIAorICAgICAgICAgICAgICAgIEludGVnZXIzMiwgCisgICAgICAgIG9zcGZ2M1ZpcnROYnJTdGF0ZSAKKyAgICAgICAgICAgICAgICBJTlRFR0VSLCAKKyAgICAgICAgb3NwZnYzVmlydE5ickV2ZW50cyAKKyAgICAgICAgICAgICAgICBDb3VudGVyMzIsIAorICAgICAgICBvc3BmdjNWaXJ0TmJyTHNSZXRyYW5zUUxlbiAKKyAgICAgICAgICAgICAgICBHYXVnZTMyLCAKKyAgICAgICAgb3NwZnYzVmlydE5ickhlbGxvU3VwcHJlc3NlZCAKKyAgICAgICAgICAgICAgICBUcnV0aFZhbHVlLCAKKyAgICAgICAgb3NwZnYzVmlydE5icklmSWQgCisgICAgICAgICAgICAgICAgSW50ZXJmYWNlSW5kZXgsIAorICAgICAgICBvc3BmdjNWaXJ0TmJyUmVzdGFydEhlbHBlclN0YXR1cyAgCisgICAgICAgICAgICAgICAgSU5URUdFUiwgIAorICAgICAgICBvc3BmdjNWaXJ0TmJyUmVzdGFydEhlbHBlckFnZSAgCisgICAgICAgICAgICAgICAgVXBUb1JlZnJlc2hJbnRlcnZhbCwgIAorICAgICAgICBvc3BmdjNWaXJ0TmJyUmVzdGFydEhlbHBlckV4aXRSZWFzb24gIAorICAgICAgICAgICAgICAgIElOVEVHRVIgCisgICAgICAgIH0gCisgCitvc3BmdjNWaXJ0TmJyQXJlYSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEFyZWFJRCAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIFRyYW5zaXQgQXJlYSBJZGVudGlmaWVyLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M1ZpcnROYnJFbnRyeSAxIH0gCisgCitvc3BmdjNWaXJ0TmJyUnRySWQgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBSb3V0ZXJJRCAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiQSAgMzItYml0ICBpbnRlZ2VyICB1bmlxdWVseSAgaWRlbnRpZnlpbmcgIHRoZSAKKyAgICAgICAgICAgIG5laWdoYm9yaW5nIHJvdXRlciBpbiB0aGUgQXV0b25vbW91cyBTeXN0ZW0uIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzVmlydE5ickVudHJ5IDIgfSAKKyAKK29zcGZ2M1ZpcnROYnJJZkluZGV4IE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSW50ZXJmYWNlSW5kZXggCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgbG9jYWwgaW50ZXJmYWNlIElEIGZvciB0aGUgdmlydHVhbCBsaW5rIG92ZXIgCisgICAgICAgICAgICB3aGljaCB0aGUgbmVpZ2hib3IgY2FuIGJlIHJlYWNoZWQuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzVmlydE5ickVudHJ5IDMgfSAKKyAKK29zcGZ2M1ZpcnROYnJBZGRyZXNzVHlwZSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEluZXRBZGRyZXNzVHlwZSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBhZGRyZXNzIHR5cGUgb2Ygb3NwZnYzVmlydE5ickFkZHJlc3MuIE9ubHkgSVB2NiAKKyAgICAgICAgICAgIGFkZHJlc3NlcyB3aXRob3V0IHpvbmUgaW5kZXggYXJlIGV4cGVjdGVkLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M1ZpcnROYnJFbnRyeSA0IH0gCisgCitvc3BmdjNWaXJ0TmJyQWRkcmVzcyBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEluZXRBZGRyZXNzIChTSVpFICgxNikpIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIElQdjYgYWRkcmVzcyBhZHZlcnRpc2VkIGJ5IHRoaXMgVmlydHVhbCBOZWlnaGJvci4gCisgICAgICAgICAgICBJdCBtdXN0IGJlIGEgU2l0ZS1Mb2NhbCBvciBHbG9iYWwgc2NvcGUgYWRkcmVzcy4iIAorICAgICAgICA6Oj0geyBvc3BmdjNWaXJ0TmJyRW50cnkgNSB9IAorIAorb3NwZnYzVmlydE5ick9wdGlvbnMgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJbnRlZ2VyMzIgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJBIEJpdCBNYXNrIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG5laWdoYm9yJ3Mgb3AtIAorICAgICAgICAgICAgdGlvbnMgZmllbGQuIiAKKyAgICAgICAgUkVGRVJFTkNFIAorICAgICAgICAgICAgIk9TUEYgVmVyc2lvbiAzLCBBcHBlbmRpeCBBLjIgdGhlIE9wdGlvbnMgZmllbGQiIAorICAgICAgICA6Oj0geyBvc3BmdjNWaXJ0TmJyRW50cnkgNiB9IAorIAorb3NwZnYzVmlydE5iclN0YXRlIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSU5URUdFUiB7IAorICAgICAgICAgICAgICAgICAgICAgICAgZG93bigxKSwgCisgICAgICAgICAgICAgICAgICAgICAgICBhdHRlbXB0KDIpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGluaXQoMyksIAorICAgICAgICAgICAgICAgICAgICAgICAgdHdvV2F5KDQpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2hhbmdlU3RhcnQoNSksIAorICAgICAgICAgICAgICAgICAgICAgICAgZXhjaGFuZ2UoNiksIAorICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZyg3KSwgCisgICAgICAgICAgICAgICAgICAgICAgICBmdWxsKDgpIAorICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBzdGF0ZSBvZiB0aGUgVmlydHVhbCBOZWlnaGJvciBSZWxhdGlvbi0gCisgICAgICAgICAgICBzaGlwLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M1ZpcnROYnJFbnRyeSA3IH0gCisgCitvc3BmdjNWaXJ0TmJyRXZlbnRzIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgQ291bnRlcjMyIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiAgdGltZXMgIHRoaXMgIHZpcnR1YWwgIGxpbmsgIGhhcyAKKyAgICAgICAgICAgIGNoYW5nZWQgaXRzIHN0YXRlLCBvciBhbiBlcnJvciBoYXMgb2NjdXJyZWQuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzVmlydE5ickVudHJ5IDggfSAKKyAKK29zcGZ2M1ZpcnROYnJMc1JldHJhbnNRTGVuIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgR2F1Z2UzMiAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIHJlYWQtb25seSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSAgY3VycmVudCAgbGVuZ3RoICBvZiAgdGhlICAgcmV0cmFuc21pc3Npb24gCisgICAgICAgICAgICBxdWV1ZS4iIAorICAgICAgICA6Oj0geyBvc3BmdjNWaXJ0TmJyRW50cnkgOSB9IAorIAorb3NwZnYzVmlydE5ickhlbGxvU3VwcHJlc3NlZCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFRydXRoVmFsdWUgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLW9ubHkgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJJbmRpY2F0ZXMgd2hldGhlciBIZWxsb3MgYXJlIGJlaW5nICBzdXBwcmVzc2VkIAorICAgICAgICAgICAgdG8gdGhlIG5laWdoYm9yIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzVmlydE5ickVudHJ5IDEwIH0gCisgCitvc3BmdjNWaXJ0TmJySWZJZCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEludGVyZmFjZUluZGV4IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1vbmx5IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIGludGVyZmFjZSBJRCB0aGF0IHRoZSBuZWlnaGJvciBhZHZlcnRpc2VzIAorICAgICAgICAgICAgaW4gaXRzIEhlbGxvIFBhY2tldHMgb24gdGhpcyB2aXJ0dWFsIGxpbmssIHRoYXQgaXMsIAorICAgICAgICAgICAgdGhlIG5laWdoYm9yJ3MgbG9jYWwgaW50ZXJmYWNlIElELiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M1ZpcnROYnJFbnRyeSAxMSB9IAorIAorICAgb3NwZnYzVmlydE5iclJlc3RhcnRIZWxwZXJTdGF0dXMgT0JKRUNULVRZUEUgIAorICAgICAgIFNZTlRBWCAgICAgICBJTlRFR0VSIHsgbm90SGVscGluZyAoMSksICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBpbmcgKDIpICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ICAKKyAgICAgICBNQVgtQUNDRVNTICAgcmVhZC1vbmx5ICAKKyAgICAgICBTVEFUVVMgICAgICAgY3VycmVudCAgCisgICAgICAgREVTQ1JJUFRJT04gIAorICAgICAgICAgICJJbmRpY2F0ZXMgd2hldGhlciB0aGUgcm91dGVyIGlzIGFjdGluZyAgCisgICAgICAgICAgYXMgYSBoaXRsZXNzIHJlc3RhcnQgaGVscGVyIGZvciB0aGUgbmVpZ2hib3IuIiAgCisgICAgICAgICAgOjo9IHsgb3NwZnYzVmlydE5ickVudHJ5IDEyIH0gIAorICAgIAorb3NwZnYzVmlydE5iclJlc3RhcnRIZWxwZXJBZ2UgT0JKRUNULVRZUEUgIAorICAgICAgIFNZTlRBWCAgICAgICBVcFRvUmVmcmVzaEludGVydmFsIAorICAgICAgIFVOSVRTICAgICAgICAic2Vjb25kcyIgIAorICAgICAgIE1BWC1BQ0NFU1MgICByZWFkLW9ubHkgIAorICAgICAgIFNUQVRVUyAgICAgICBjdXJyZW50ICAKKyAgICAgICBERVNDUklQVElPTiAgCisgICAgICAgICAgIlJlbWFpbmluZyB0aW1lIGluIGN1cnJlbnQgT1NQRiBoaXRsZXNzIHJlc3RhcnQgIAorICAgICAgICAgIGludGVydmFsLCBpZiB0aGUgcm91dGVyIGlzIGFjdGluZyBhcyBhIHJlc3RhcnQgIAorICAgICAgICAgIGhlbHBlciBmb3IgdGhlIG5laWdoYm9yLiIgIAorICAgICAgIDo6PSB7IG9zcGZ2M1ZpcnROYnJFbnRyeSAxMyB9ICAKKyAgICAKK29zcGZ2M1ZpcnROYnJSZXN0YXJ0SGVscGVyRXhpdFJlYXNvbiBPQkpFQ1QtVFlQRSAgCisgICAgICAgU1lOVEFYICAgICAgIElOVEVHRVIgeyBub25lICgxKSwgICAgICAgICAgIC0tIG5vdCBhdHRlbXB0ZWQgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5Qcm9ncmVzcyAoMiksICAgICAtLSByZXN0YXJ0IGluICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gcHJvZ3Jlc3MgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGVkICgzKSwgICAgICAtLSBzdWNjZXNzZnVsbHkgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBjb21wbGV0ZWQgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZWRPdXQgKDQpLCAgICAgICAtLSB0aW1lZCBvdXQgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wb2xvZ3lDaGFuZ2VkICg1KSAtLSBhYm9ydGVkIGR1ZSB0byAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIHRvcG9sb2d5ICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gY2hhbmdlLiAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAgCisgICAgICAgTUFYLUFDQ0VTUyAgIHJlYWQtb25seSAgCisgICAgICAgU1RBVFVTICAgICAgIGN1cnJlbnQgIAorICAgICAgIERFU0NSSVBUSU9OICAKKyAgICAgICAgICAiRGVzY3JpYmVzIHRoZSBvdXRjb21lIG9mIHRoZSBsYXN0IGF0dGVtcHQgYXQgYWN0aW5nICAKKyAgICAgICAgICAgYXMgYSBoaXRsZXNzIHJlc3RhcnQgaGVscGVyIGZvciB0aGUgbmVpZ2hib3IuIiAgCisgICAgOjo9IHsgb3NwZnYzVmlydE5ickVudHJ5IDE0IH0gCisgCisgCistLSAKKy0tIFRoZSBPU1BGdjMgQXJlYSBBZ2dyZWdhdGUgVGFibGUgCistLSAKKyAKK29zcGZ2M0FyZWFBZ2dyZWdhdGVUYWJsZSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIFNFUVVFTkNFIE9GIE9zcGZ2M0FyZWFBZ2dyZWdhdGVFbnRyeSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiQSByYW5nZSBvZiBJUHY2IHByZWZpeGVzIHNwZWNpZmllZCBieSBhIAorICAgICAgICAgICAgcHJlZml4L3ByZWZpeCBsZW5ndGggIHBhaXIuIE5vdGUgdGhhdCBpZiAKKyAgICAgICAgICAgIHJhbmdlcyBhcmUgY29uZmlndXJlZCBzdWNoIHRoYXQgb25lIHJhbmdlIHN1Yi0gCisgICAgICAgICAgICBzdW1lcyAgYW5vdGhlciByYW5nZSB0aGUgbW9zdCBzcGVjaWZpYyBtYXRjaCBpcyAKKyAgICAgICAgICAgIHRoZSBwcmVmZXJyZWQgb25lLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M09iamVjdHMgMTIgfSAKKyAKK29zcGZ2M0FyZWFBZ2dyZWdhdGVFbnRyeSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIE9zcGZ2M0FyZWFBZ2dyZWdhdGVFbnRyeSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiQSByYW5nZSBvZiBJUHY2IHByZWZpeGVzIHNwZWNpZmllZCBieSBhIAorICAgICAgICAgICAgcHJlZml4L3ByZWZpeCBsZW5ndGggIHBhaXIuIE5vdGUgdGhhdCBpZiAKKyAgICAgICAgICAgIHJhbmdlcyBhcmUgY29uZmlndXJlZCBzdWNoIHRoYXQgb25lIHJhbmdlIHN1Yi0gCisgICAgICAgICAgICBzdW1lcyAgYW5vdGhlciByYW5nZSB0aGUgbW9zdCBzcGVjaWZpYyBtYXRjaCBpcyAKKyAgICAgICAgICAgIHRoZSBwcmVmZXJyZWQgb25lLiIgCisgICAgICAgIFJFRkVSRU5DRSAKKyAgICAgICAgICAgICJPU1BGIFZlcnNpb24gMiwgQXBwZW5kaXggQy4yICBBcmVhIHBhcmFtZXRlcnMiIAorICAgICAgICBJTkRFWCAgICAgICAgICAgeyBvc3BmdjNBcmVhQWdncmVnYXRlQXJlYUlELCAgCisgICAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0FyZWFBZ2dyZWdhdGVBcmVhTHNkYlR5cGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBcmVhQWdncmVnYXRlUHJlZml4VHlwZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0FyZWFBZ2dyZWdhdGVQcmVmaXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBcmVhQWdncmVnYXRlUHJlZml4TGVuZ3RoIH0gCisgICAgICAgIDo6PSB7IG9zcGZ2M0FyZWFBZ2dyZWdhdGVUYWJsZSAxIH0gCisgCitPc3BmdjNBcmVhQWdncmVnYXRlRW50cnkgOjo9IFNFUVVFTkNFIHsgCisgICAgICAgIG9zcGZ2M0FyZWFBZ2dyZWdhdGVBcmVhSUQgCisgICAgICAgICAgICAgICAgQXJlYUlELCAKKyAgICAgICAgb3NwZnYzQXJlYUFnZ3JlZ2F0ZUFyZWFMc2RiVHlwZSAKKyAgICAgICAgICAgICAgICBJTlRFR0VSLCAKKyAgICAgICAgb3NwZnYzQXJlYUFnZ3JlZ2F0ZVByZWZpeFR5cGUgCisgICAgICAgICAgICAgICAgSW5ldEFkZHJlc3NUeXBlLCAKKyAgICAgICAgb3NwZnYzQXJlYUFnZ3JlZ2F0ZVByZWZpeCAKKyAgICAgICAgICAgICAgICBJbmV0QWRkcmVzcywgCisgICAgICAgIG9zcGZ2M0FyZWFBZ2dyZWdhdGVQcmVmaXhMZW5ndGggCisgICAgICAgICAgICAgICAgSW5ldEFkZHJlc3NQcmVmaXhMZW5ndGgsIAorICAgICAgICBvc3BmdjNBcmVhQWdncmVnYXRlU3RhdHVzIAorICAgICAgICAgICAgICAgIFJvd1N0YXR1cywgCisgICAgICAgIG9zcGZ2M0FyZWFBZ2dyZWdhdGVFZmZlY3QgCisgICAgICAgICAgICAgICAgSU5URUdFUiwgCisgICAgICAgIG9zcGZ2M0FyZWFBZ2dyZWdhdGVSb3V0ZVRhZyAKKyAgICAgICAgICAgICAgICBJTlRFR0VSIAorICAgICAgICB9IAorIAorb3NwZnYzQXJlYUFnZ3JlZ2F0ZUFyZWFJRCBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEFyZWFJRCAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIEFyZWEgdGhlIEFkZHJlc3MgQWdncmVnYXRlIGlzIHRvIGJlICBmb3VuZCAKKyAgICAgICAgICAgIHdpdGhpbi4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uIDIsIEFwcGVuZGl4IEMuMiBBcmVhIHBhcmFtZXRlcnMiIAorICAgICAgICA6Oj0geyBvc3BmdjNBcmVhQWdncmVnYXRlRW50cnkgMSB9IAorIAorb3NwZnYzQXJlYUFnZ3JlZ2F0ZUFyZWFMc2RiVHlwZSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIElOVEVHRVIgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgIGludGVyQXJlYVByZWZpeExzYSg4MTk1KSwgLS0gMHgyMDAzIAorICAgICAgICAgICAgICAgICAgICAgICAgbnNzYUV4dGVybmFsTHNhKDgxOTkpICAgICAtLSAweDIwMDcgCisgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICBNQVgtQUNDRVNTICAgICAgbm90LWFjY2Vzc2libGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGUgdHlwZSBvZiB0aGUgQWRkcmVzcyBBZ2dyZWdhdGUuICBUaGlzIGZpZWxkIAorICAgICAgICAgICAgc3BlY2lmaWVzICB0aGUgIEFyZWEgTHNkYiB0eXBlIHRoYXQgdGhpcyBBZGRyZXNzIEFnLSAKKyAgICAgICAgICAgIGdyZWdhdGUgYXBwbGllcyB0by4iIAorICAgICAgICBSRUZFUkVOQ0UgCisgICAgICAgICAgICAiT1NQRiBWZXJzaW9uIDIsIEFwcGVuZGl4IEEuNC4xIFRoZSAgTGluayAgU3RhdGUgCisgICAgICAgICAgICBBZHZlcnRpc2VtZW50IGhlYWRlciIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0FyZWFBZ2dyZWdhdGVFbnRyeSAyIH0gCisgCitvc3BmdjNBcmVhQWdncmVnYXRlUHJlZml4VHlwZSBPQkpFQ1QtVFlQRSAKKyAgICAgICAgU1lOVEFYICAgICAgICAgIEluZXRBZGRyZXNzVHlwZSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIHByZWZpeCB0eXBlIG9mIG9zcGZ2M0FyZWFBZ2dyZWdhdGVQcmVmaXguIE9ubHkgCisgICAgICAgICAgICBJUHY2IGFkZHJlc3NlcyBhcmUgZXhwZWN0ZWQuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzQXJlYUFnZ3JlZ2F0ZUVudHJ5IDQgfSAKKyAKK29zcGZ2M0FyZWFBZ2dyZWdhdGVQcmVmaXggT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJbmV0QWRkcmVzcyAoU0laRSAoMC4uMTYpKSAKKyAgICAgICAgTUFYLUFDQ0VTUyAgICAgIG5vdC1hY2Nlc3NpYmxlIAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlIElQdjYgUHJlZml4LiIgCisgICAgICAgIFJFRkVSRU5DRSAKKyAgICAgICAgICAgICJPU1BGIFZlcnNpb24gMiwgQXBwZW5kaXggQy4yIEFyZWEgcGFyYW1ldGVycyIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0FyZWFBZ2dyZWdhdGVFbnRyeSA1IH0gCisgCitvc3BmdjNBcmVhQWdncmVnYXRlUHJlZml4TGVuZ3RoIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSW5ldEFkZHJlc3NQcmVmaXhMZW5ndGggKDMuLjEyOCkgCisgICAgICAgIFVOSVRTICAgICAgICAgICAiYml0cyIgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICBub3QtYWNjZXNzaWJsZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZSBsZW5ndGggb2YgdGhlIHByZWZpeCAoaW4gYml0cykuIEEgcHJlZml4IGNhbiAKKyAgICAgICAgICAgIG5vdCBiZSBzaG9ydGVyIHRoYW4gMyBiaXRzLiIgCisgICAgICAgIFJFRkVSRU5DRSAKKyAgICAgICAgICAgICJPU1BGIFZlcnNpb24gMiwgQXBwZW5kaXggQy4yIEFyZWEgcGFyYW1ldGVycyIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0FyZWFBZ2dyZWdhdGVFbnRyeSA2IH0gCisgCitvc3BmdjNBcmVhQWdncmVnYXRlU3RhdHVzIE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgUm93U3RhdHVzIAorICAgICAgICBNQVgtQUNDRVNTICAgICAgcmVhZC1jcmVhdGUgCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGlzIHZhcmlhYmxlIGNvbnRyb2xzIHRoZSBzdGF0dXMgb2YgIHRoZSAgZW4tIAorICAgICAgICAgICAgdHJ5LiBUaGUgdXNlIG9mIFJvd1N0YXR1cyBpcyBjb3ZlcmVkIGluIG1vcmUgZGV0YWlsIAorICAgICAgICAgICAgaW4gWzZdLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0FyZWFBZ2dyZWdhdGVFbnRyeSA3IH0gCisgCitvc3BmdjNBcmVhQWdncmVnYXRlRWZmZWN0IE9CSkVDVC1UWVBFIAorICAgICAgICBTWU5UQVggICAgICAgICAgSU5URUdFUiB7IAorICAgICAgICAgICAgICAgICAgICAgICAgYWR2ZXJ0aXNlTWF0Y2hpbmcoMSksIAorICAgICAgICAgICAgICAgICAgICAgICAgZG9Ob3RBZHZlcnRpc2VNYXRjaGluZygyKSAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLWNyZWF0ZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlByZWZpeGVzIHN1YnN1bWVkIGJ5IHJhbmdlcyBlaXRoZXIgdHJpZ2dlciAgdGhlIAorICAgICAgICAgICAgYWR2ZXJ0aXNlbWVudCAgb2YgIHRoZSBpbmRpY2F0ZWQgYWdncmVnYXRlIChhZC0gCisgICAgICAgICAgICB2ZXJ0aXNlTWF0Y2hpbmcpLCBvciByZXN1bHQgaW4gdGhlIHByZWZpeCBub3QgCisgICAgICAgICAgICBiZWluZyBhZHZlcnRpc2VkIGF0IGFsbCBvdXRzaWRlIHRoZSBhcmVhLiIgCisgICAgICAgIERFRlZBTCAgICAgICAgICB7IGFkdmVydGlzZU1hdGNoaW5nIH0gCisgICAgICAgIDo6PSB7IG9zcGZ2M0FyZWFBZ2dyZWdhdGVFbnRyeSA4IH0gCisgCitvc3BmdjNBcmVhQWdncmVnYXRlUm91dGVUYWcgT0JKRUNULVRZUEUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJbnRlZ2VyMzIgCisgICAgICAgIE1BWC1BQ0NFU1MgICAgICByZWFkLWNyZWF0ZSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoaXMgdGFnIGlzIGFkdmVydGlzZWQgb25seSBpbiB0aGUgc3VtbWFyaXplZCAKKyAgICAgICAgICAgICBBcy1FeHRlcm5hbCBMU0Egd2hlbiBzdW1tYXJpemluZyBmcm9tIHR5cGUtNyB0byAgCisgICAgICAgICAgICAgdHlwZS01LiIgCisgICAgICAgIERFRlZBTCAgICAgICAgIHsgMCB9IAorICAgICAgICA6Oj0geyBvc3BmdjNBcmVhQWdncmVnYXRlRW50cnkgOSB9IAorICAgICAgICAgCisKKy0tIGNvbmZvcm1hbmNlIGluZm9ybWF0aW9uIAorIAorb3NwZnYzR3JvdXBzICAgICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgb3NwZnYzQ29uZm9ybWFuY2UgMSB9IAorb3NwZnYzQ29tcGxpYW5jZXMgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgb3NwZnYzQ29uZm9ybWFuY2UgMiB9IAorIAorLS0gY29tcGxpYW5jZSBzdGF0ZW1lbnRzIAorIAorb3NwZnYzQ29tcGxpYW5jZSBNT0RVTEUtQ09NUExJQU5DRSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OICAgICAiVGhlIGNvbXBsaWFuY2Ugc3RhdGVtZW50ICIgCisgICAgICAgIE1PRFVMRSAgICAgICAgICAtLSB0aGlzIG1vZHVsZSAKKyAgICAgICAgTUFOREFUT1JZLUdST1VQUyB7IAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQmFzaWNHcm91cCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBcmVhR3JvdXAsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzSWZHcm91cCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNWaXJ0SWZHcm91cCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNOYnJHcm91cCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNOYm1hTmJyR3JvdXAsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzVmlydE5ickdyb3VwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0FyZWFBZ2dyZWdhdGVHcm91cCAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgCisgICAgICAgIEdST1VQICAgICAgICAgICBvc3BmdjNBc0xzZGJHcm91cCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhpcyBncm91cCBpcyByZXF1aXJlZCBmb3IgT1NQRnYzIHN5c3RlbXMgdGhhdCAKKyAgICAgICAgICAgIGRpc3BsYXkgdGhlaXIgQVMtc2NvcGUgbGluayBzdGF0ZSBkYXRhYmFzZS4iIAorIAorICAgICAgICBHUk9VUCAgICAgICAgICAgb3NwZnYzQXJlYUxzZGJHcm91cCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhpcyBncm91cCBpcyByZXF1aXJlZCBmb3IgT1NQRnYzIHN5c3RlbXMgdGhhdCAKKyAgICAgICAgICAgIGRpc3BsYXkgdGhlaXIgQXJlYS1zY29wZSBsaW5rIHN0YXRlIGRhdGFiYXNlLiIgCisgCisgICAgICAgIEdST1VQICAgICAgICAgICBvc3BmdjNMaW5rTHNkYkdyb3VwIAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGlzIGdyb3VwIGlzIHJlcXVpcmVkIGZvciBPU1BGdjMgc3lzdGVtcyB0aGF0IAorICAgICAgICAgICAgZGlzcGxheSB0aGVpciBMaW5rLXNjb3BlIGxpbmsgc3RhdGUgZGF0YWJhc2UuIiAKKyAKKyAgICAgICAgR1JPVVAgICAgICAgICAgIG9zcGZ2M0hvc3RHcm91cCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhpcyBncm91cCBpcyByZXF1aXJlZCBmb3IgT1NQRnYzIHN5c3RlbXMgdGhhdCAKKyAgICAgICAgICAgIHN1cHBvcnQgYXR0YWNoZWQgaG9zdHMuIiAKKyAKKyAgICAgICAgT0JKRUNUICAgICAgICAgIG9zcGZ2M05ickFkZHJlc3NUeXBlIAorICAgICAgICBTWU5UQVggICAgICAgICAgSW5ldEFkZHJlc3NUeXBlIHsgaXB2NigyKSB9IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJBbiBpbXBsZW1lbnRhdGlvbiBpcyBvbmx5IHJlcXVpcmVkIHRvIHN1cHBvcnQgSVB2NiAKKyAgICAgICAgICAgIGFkZHJlc3Mgd2l0aG91dCB6b25lIGluZGV4LiIgCisgCisgICAgICAgIE9CSkVDVCAgICAgICAgICBvc3BmdjNWaXJ0TmJyQWRkcmVzc1R5cGUgCisgICAgICAgIFNZTlRBWCAgICAgICAgICBJbmV0QWRkcmVzc1R5cGUgeyBpcHY2KDIpIH0gCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIkFuIGltcGxlbWVudGF0aW9uIGlzIG9ubHkgcmVxdWlyZWQgdG8gc3VwcG9ydCBJUHY2IAorICAgICAgICAgICAgYWRkcmVzcyB3aXRob3V0IHpvbmUgaW5kZXguIiAKKyAKKyAgICAgICAgOjo9IHsgb3NwZnYzQ29tcGxpYW5jZXMgMSB9IAorIAorLS0gdW5pdHMgb2YgY29uZm9ybWFuY2UgCisgCitvc3BmdjNCYXNpY0dyb3VwIE9CSkVDVC1HUk9VUCAKKyAgICAgICAgT0JKRUNUUyAgICAgICAgIHsgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNSb3V0ZXJJZCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBZG1pblN0YXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzVmVyc2lvbk51bWJlciwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBcmVhQmRyUnRyU3RhdHVzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0FTQmRyUnRyU3RhdHVzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0FzU2NvcGVMc2FDb3VudCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBc1Njb3BlTHNhQ2tzdW1TdW0sIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzT3JpZ2luYXRlTmV3THNhcywgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNSeE5ld0xzYXMsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzRXh0THNhQ291bnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzRXh0QXJlYUxzZGJMaW1pdCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNNdWx0aWNhc3RFeHRlbnNpb25zLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0V4aXRPdmVyZmxvd0ludGVydmFsLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0RlbWFuZEV4dGVuc2lvbnMsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzVHJhZmZpY0VuZ2luZWVyaW5nU3VwcG9ydCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNSZWZlcmVuY2VCYW5kd2lkdGgsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzUmVzdGFydFN1cHBvcnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzUmVzdGFydEludGVydmFsLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M1Jlc3RhcnRTdGF0dXMsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzUmVzdGFydEFnZSwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNSZXN0YXJ0RXhpdFJlYXNvbiAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGVzZSBvYmplY3RzIGFyZSByZXF1aXJlZCBmb3IgT1NQRnYzIHN5c3RlbXMuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzR3JvdXBzIDEgfSAKKyAKKyAKK29zcGZ2M0FyZWFHcm91cCBPQkpFQ1QtR1JPVVAgCisgICAgICAgIE9CSkVDVFMgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0ltcG9ydEFzRXh0ZXJuLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0FyZWFTcGZSdW5zLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0FyZWFCZHJSdHJDb3VudCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBcmVhQXNCZHJSdHJDb3VudCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBcmVhU2NvcGVMc2FDb3VudCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBcmVhU2NvcGVMc2FDa3N1bVN1bSwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBcmVhU3VtbWFyeSwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBcmVhU3RhdHVzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M1N0dWJNZXRyaWMsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXJlYU5zc2FUcmFuc2xhdG9yUm9sZSwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBcmVhTnNzYVRyYW5zbGF0b3JTdGF0ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBcmVhTnNzYVRyYW5zbGF0b3JTdGFiaWxpdHlJbnRlcnZhbCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBcmVhTnNzYVRyYW5zbGF0b3JFdmVudHMsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXJlYVN0dWJNZXRyaWNUeXBlIAorICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZXNlIG9iamVjdHMgYXJlIHJlcXVpcmVkIGZvciBPU1BGdjMgc3lzdGVtcyAKKyAgICAgICAgICAgIHN1cHBvcnRpbmcgYXJlYXMuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzR3JvdXBzIDIgfSAKKyAKK29zcGZ2M0FzTHNkYkdyb3VwIE9CSkVDVC1HUk9VUCAKKyAgICAgICAgT0JKRUNUUyAgICAgICAgIHsgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBc0xzZGJTZXF1ZW5jZSwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBc0xzZGJBZ2UsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXNMc2RiQ2hlY2tzdW0sIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXNMc2RiQWR2ZXJ0aXNlbWVudCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBc0xzZGJUeXBlS25vd24gCisgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlc2Ugb2JqZWN0cyBhcmUgcmVxdWlyZWQgZm9yIE9TUEZ2MyBzeXN0ZW1zIAorICAgICAgICAgICAgdGhhdCBkaXNwbGF5IHRoZWlyIEFTLXNjb3BlIGxpbmsgc3RhdGUgZGF0YWJhc2UuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzR3JvdXBzIDMgfSAKKyAKK29zcGZ2M0FyZWFMc2RiR3JvdXAgT0JKRUNULUdST1VQIAorICAgICAgICBPQkpFQ1RTICAgICAgICAgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0FyZWFMc2RiU2VxdWVuY2UsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXJlYUxzZGJBZ2UsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXJlYUxzZGJDaGVja3N1bSwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBcmVhTHNkYkFkdmVydGlzZW1lbnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXJlYUxzZGJUeXBlS25vd24gCisgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlc2Ugb2JqZWN0cyBhcmUgcmVxdWlyZWQgZm9yIE9TUEZ2MyBzeXN0ZW1zIAorICAgICAgICAgICAgdGhhdCBkaXNwbGF5IHRoZWlyIEFyZWEtc2NvcGUgbGluayBzdGF0ZSBkYXRhYmFzZS4iIAorICAgICAgICA6Oj0geyBvc3BmdjNHcm91cHMgNCB9IAorIAorb3NwZnYzTGlua0xzZGJHcm91cCBPQkpFQ1QtR1JPVVAgCisgICAgICAgIE9CSkVDVFMgICAgICAgICB7IAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzTGlua0xzZGJTZXF1ZW5jZSwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNMaW5rTHNkYkFnZSwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNMaW5rTHNkYkNoZWNrc3VtLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0xpbmtMc2RiQWR2ZXJ0aXNlbWVudCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNMaW5rTHNkYlR5cGVLbm93biAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGVzZSBvYmplY3RzIGFyZSByZXF1aXJlZCBmb3IgT1NQRnYzICBzeXN0ZW1zIAorICAgICAgICAgICAgdGhhdCBkaXNwbGF5IHRoZWlyIExpbmstc2NvcGUgbGluayBzdGF0ZSBkYXRhYmFzZS4iIAorICAgICAgICA6Oj0geyBvc3BmdjNHcm91cHMgNSB9IAorIAorb3NwZnYzSG9zdEdyb3VwIE9CSkVDVC1HUk9VUCAKKyAgICAgICAgT0JKRUNUUyAgICAgICAgIHsgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNIb3N0TWV0cmljLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0hvc3RTdGF0dXMsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzSG9zdEFyZWFJRCAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGVzZSBvYmplY3RzIGFyZSByZXF1aXJlZCAgZm9yICBPU1BGdjMgIHN5c3RlbXMgCisgICAgICAgICAgICB0aGF0IHN1cHBvcnQgYXR0YWNoZWQgaG9zdHMuIiAKKyAgICAgICAgOjo9IHsgb3NwZnYzR3JvdXBzIDYgfSAKKyAKK29zcGZ2M0lmR3JvdXAgT0JKRUNULUdST1VQIAorICAgICAgICBPQkpFQ1RTICAgICAgICAgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0lmQXJlYUlkLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0lmVHlwZSwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNJZkFkbWluU3RhdCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNJZlJ0clByaW9yaXR5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0lmVHJhbnNpdERlbGF5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0lmUmV0cmFuc0ludGVydmFsLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0lmSGVsbG9JbnRlcnZhbCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNJZlJ0ckRlYWRJbnRlcnZhbCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNJZlBvbGxJbnRlcnZhbCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNJZlN0YXRlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0lmRGVzaWduYXRlZFJvdXRlciwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNJZkJhY2t1cERlc2lnbmF0ZWRSb3V0ZXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzSWZFdmVudHMsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzSWZTdGF0dXMsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzSWZNdWx0aWNhc3RGb3J3YXJkaW5nLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0lmRGVtYW5kLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0lmTWV0cmljVmFsdWUsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzSWZMaW5rU2NvcGVMc2FDb3VudCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNJZkxpbmtMc2FDa3N1bVN1bSwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNJZkluc3RJZCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNJZkRlbWFuZE5iclByb2JlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0lmRGVtYW5kTmJyUHJvYmVSZXR4TGltaXQsICAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0lmRGVtYW5kTmJyUHJvYmVJbnRlcnZhbCAgCisgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlc2UgaW50ZXJmYWNlIG9iamVjdHMgYXJlIHJlcXVpcmVkIGZvciAgCisgICAgICAgICAgICBPU1BGdjMgc3lzdGVtcy4iIAorICAgICAgICA6Oj0geyBvc3BmdjNHcm91cHMgNyB9IAorIAorb3NwZnYzVmlydElmR3JvdXAgT0JKRUNULUdST1VQIAorICAgICAgICBPQkpFQ1RTICAgICAgICAgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M1ZpcnRJZkluZGV4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M1ZpcnRJZlRyYW5zaXREZWxheSwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNWaXJ0SWZSZXRyYW5zSW50ZXJ2YWwsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzVmlydElmSGVsbG9JbnRlcnZhbCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNWaXJ0SWZSdHJEZWFkSW50ZXJ2YWwsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzVmlydElmU3RhdGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzVmlydElmRXZlbnRzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M1ZpcnRJZlN0YXR1cywgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNWaXJ0SWZMaW5rU2NvcGVMc2FDb3VudCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNWaXJ0SWZMaW5rTHNhQ2tzdW1TdW0gIAorICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgU1RBVFVTICAgICAgICAgIGN1cnJlbnQgCisgICAgICAgIERFU0NSSVBUSU9OIAorICAgICAgICAgICAgIlRoZXNlIHZpcnR1YWwgaW50ZXJmYWNlIG9iamVjdHMgYXJlIHJlcXVpcmVkIGZvciAgCisgICAgICAgICAgICBPU1BGdjMgc3lzdGVtcy4iIAorICAgICAgICA6Oj0geyBvc3BmdjNHcm91cHMgOCB9IAorIAorb3NwZnYzTmJyR3JvdXAgT0JKRUNULUdST1VQIAorICAgICAgICBPQkpFQ1RTICAgICAgICAgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M05ickFkZHJlc3NUeXBlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M05ickFkZHJlc3MsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzTmJyT3B0aW9ucywgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNOYnJQcmlvcml0eSwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNOYnJTdGF0ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNOYnJFdmVudHMsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzTmJyTHNSZXRyYW5zUUxlbiwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNOYnJIZWxsb1N1cHByZXNzZWQsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzTmJySWZJZCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNOYnJSZXN0YXJ0SGVscGVyU3RhdHVzLCAgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNOYnJSZXN0YXJ0SGVscGVyQWdlLCAgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNOYnJSZXN0YXJ0SGVscGVyRXhpdFJlYXNvbiAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGVzZSBuZWlnaGJvciBvYmplY3RzIGFyZSByZXF1aXJlZCBmb3IgCisgICAgICAgICAgICBPU1BGdjMgc3lzdGVtcy4iIAorICAgICAgICA6Oj0geyBvc3BmdjNHcm91cHMgOSB9IAorIAorb3NwZnYzTmJtYU5ickdyb3VwIE9CSkVDVC1HUk9VUCAKKyAgICAgICAgT0JKRUNUUyAgICAgICAgIHsgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNOYm1hTmJyUHJpb3JpdHksIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzTmJtYU5iclJ0cklkLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M05ibWFOYnJTdGF0ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNOYm1hTmJyU3RvcmFnZVR5cGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzTmJtYU5iclN0YXR1cyAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGVzZSBOQk1BIG5laWdoYm9yIG9iamVjdHMgYXJlIHJlcXVpcmVkIGZvciAKKyAgICAgICAgICAgIE9TUEZ2MyBzeXN0ZW1zLiIgCisgICAgICAgIDo6PSB7IG9zcGZ2M0dyb3VwcyAxMCB9IAorIAorb3NwZnYzVmlydE5ickdyb3VwIE9CSkVDVC1HUk9VUCAKKyAgICAgICAgT0JKRUNUUyAgICAgICAgIHsgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNWaXJ0TmJySWZJbmRleCwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNWaXJ0TmJyQWRkcmVzc1R5cGUsICAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M1ZpcnROYnJBZGRyZXNzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M1ZpcnROYnJPcHRpb25zLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M1ZpcnROYnJTdGF0ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNWaXJ0TmJyRXZlbnRzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M1ZpcnROYnJMc1JldHJhbnNRTGVuLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M1ZpcnROYnJIZWxsb1N1cHByZXNzZWQsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzVmlydE5icklmSWQsIAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzVmlydE5iclJlc3RhcnRIZWxwZXJTdGF0dXMsICAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M1ZpcnROYnJSZXN0YXJ0SGVscGVyQWdlLCAgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNWaXJ0TmJyUmVzdGFydEhlbHBlckV4aXRSZWFzb24gCisgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICBTVEFUVVMgICAgICAgICAgY3VycmVudCAKKyAgICAgICAgREVTQ1JJUFRJT04gCisgICAgICAgICAgICAiVGhlc2UgdmlydHVhbCBuZWlnaGJvciBvYmplY3RzIGFyZSByZXF1aXJlZCBmb3IgCisgICAgICAgICAgICBPU1BGdjMgc3lzdGVtcy4iIAorICAgICAgICA6Oj0geyBvc3BmdjNHcm91cHMgMTEgfSAKKyAKK29zcGZ2M0FyZWFBZ2dyZWdhdGVHcm91cCBPQkpFQ1QtR1JPVVAgCisgICAgICAgIE9CSkVDVFMgICAgICAgICB7IAorICAgICAgICAgICAgICAgICAgICAgICAgb3NwZnYzQXJlYUFnZ3JlZ2F0ZVN0YXR1cywgCisgICAgICAgICAgICAgICAgICAgICAgICBvc3BmdjNBcmVhQWdncmVnYXRlRWZmZWN0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zcGZ2M0FyZWFBZ2dyZWdhdGVSb3V0ZVRhZyAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgIFNUQVRVUyAgICAgICAgICBjdXJyZW50IAorICAgICAgICBERVNDUklQVElPTiAKKyAgICAgICAgICAgICJUaGVzZSBhcmVhIGFnZ3JlZ2F0ZSBvYmplY3RzIGFyZSByZXF1aXJlZCBmb3IgCisgICAgICAgICAgICBPU1BGdjMgc3lzdGVtcy4iIAorICAgICAgICA6Oj0geyBvc3BmdjNHcm91cHMgMTIgfSAKKyAKK0VORCAK