ZGlmZiAtLWdpdCBhL3Bqc2lwLWFwcHMvc3JjL3BvY2tldHBqL1BvY2tldFBKLmNwcCBiL3Bqc2lwLWFwcHMvc3JjL3BvY2tldHBqL1BvY2tldFBKLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZDQyZDk2Ci0tLSAvZGV2L251bGwKKysrIGIvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovUG9ja2V0UEouY3BwCkBAIC0wLDAgKzEsNjYgQEAKKy8vIFBvY2tldFBKLmNwcCA6IERlZmluZXMgdGhlIGNsYXNzIGJlaGF2aW9ycyBmb3IgdGhlIGFwcGxpY2F0aW9uLgorLy8KKworI2luY2x1ZGUgInN0ZGFmeC5oIgorI2luY2x1ZGUgIlBvY2tldFBKLmgiCisjaW5jbHVkZSAiUG9ja2V0UEpEbGcuaCIKKworI2lmZGVmIF9ERUJVRworI2RlZmluZSBuZXcgREVCVUdfTkVXCisjdW5kZWYgVEhJU19GSUxFCitzdGF0aWMgY2hhciBUSElTX0ZJTEVbXSA9IF9fRklMRV9fOworI2VuZGlmCisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBDUG9ja2V0UEpBcHAKKworQkVHSU5fTUVTU0FHRV9NQVAoQ1BvY2tldFBKQXBwLCBDV2luQXBwKQorCS8ve3tBRlhfTVNHX01BUChDUG9ja2V0UEpBcHApCisJCS8vIE5PVEUgLSB0aGUgQ2xhc3NXaXphcmQgd2lsbCBhZGQgYW5kIHJlbW92ZSBtYXBwaW5nIG1hY3JvcyBoZXJlLgorCQkvLyAgICBETyBOT1QgRURJVCB3aGF0IHlvdSBzZWUgaW4gdGhlc2UgYmxvY2tzIG9mIGdlbmVyYXRlZCBjb2RlIQorCS8vfX1BRlhfTVNHX01BUAorRU5EX01FU1NBR0VfTUFQKCkKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIENQb2NrZXRQSkFwcCBjb25zdHJ1Y3Rpb24KKworQ1BvY2tldFBKQXBwOjpDUG9ja2V0UEpBcHAoKQorCTogQ1dpbkFwcCgpCit7CisJLy8gVE9ETzogYWRkIGNvbnN0cnVjdGlvbiBjb2RlIGhlcmUsCisJLy8gUGxhY2UgYWxsIHNpZ25pZmljYW50IGluaXRpYWxpemF0aW9uIGluIEluaXRJbnN0YW5jZQorfQorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gVGhlIG9uZSBhbmQgb25seSBDUG9ja2V0UEpBcHAgb2JqZWN0CisKK0NQb2NrZXRQSkFwcCB0aGVBcHA7CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBDUG9ja2V0UEpBcHAgaW5pdGlhbGl6YXRpb24KKworQk9PTCBDUG9ja2V0UEpBcHA6OkluaXRJbnN0YW5jZSgpCit7CisJLy8gU3RhbmRhcmQgaW5pdGlhbGl6YXRpb24KKwkvLyBJZiB5b3UgYXJlIG5vdCB1c2luZyB0aGVzZSBmZWF0dXJlcyBhbmQgd2lzaCB0byByZWR1Y2UgdGhlIHNpemUKKwkvLyAgb2YgeW91ciBmaW5hbCBleGVjdXRhYmxlLCB5b3Ugc2hvdWxkIHJlbW92ZSBmcm9tIHRoZSBmb2xsb3dpbmcKKwkvLyAgdGhlIHNwZWNpZmljIGluaXRpYWxpemF0aW9uIHJvdXRpbmVzIHlvdSBkbyBub3QgbmVlZC4KKworCUNQb2NrZXRQSkRsZyBkbGc7CisJbV9wTWFpblduZCA9ICZkbGc7CisJaW50IG5SZXNwb25zZSA9IGRsZy5Eb01vZGFsKCk7CisJaWYgKG5SZXNwb25zZSA9PSBJRE9LKQorCXsKKwkJLy8gVE9ETzogUGxhY2UgY29kZSBoZXJlIHRvIGhhbmRsZSB3aGVuIHRoZSBkaWFsb2cgaXMKKwkJLy8gIGRpc21pc3NlZCB3aXRoIE9LCisJfQorCWVsc2UgaWYgKG5SZXNwb25zZSA9PSBJRENBTkNFTCkKKwl7CisJCS8vIFRPRE86IFBsYWNlIGNvZGUgaGVyZSB0byBoYW5kbGUgd2hlbiB0aGUgZGlhbG9nIGlzCisJCS8vICBkaXNtaXNzZWQgd2l0aCBDYW5jZWwKKwl9CisKKwkvLyBTaW5jZSB0aGUgZGlhbG9nIGhhcyBiZWVuIGNsb3NlZCwgcmV0dXJuIEZBTFNFIHNvIHRoYXQgd2UgZXhpdCB0aGUKKwkvLyAgYXBwbGljYXRpb24sIHJhdGhlciB0aGFuIHN0YXJ0IHRoZSBhcHBsaWNhdGlvbidzIG1lc3NhZ2UgcHVtcC4KKwlyZXR1cm4gRkFMU0U7Cit9CmRpZmYgLS1naXQgYS9wanNpcC1hcHBzL3NyYy9wb2NrZXRwai9Qb2NrZXRQSi5oIGIvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovUG9ja2V0UEouaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYjUzMTUyCi0tLSAvZGV2L251bGwKKysrIGIvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovUG9ja2V0UEouaApAQCAtMCwwICsxLDQ5IEBACisvLyBQb2NrZXRQSi5oIDogbWFpbiBoZWFkZXIgZmlsZSBmb3IgdGhlIFBPQ0tFVFBKIGFwcGxpY2F0aW9uCisvLworCisjaWYgIWRlZmluZWQoQUZYX1BPQ0tFVFBKX0hfX0Q5MDMyMEY4XzAxRjlfNEY1Q184NjU1XzEzQ0YyRkZEREY0OF9fSU5DTFVERURfKQorI2RlZmluZSBBRlhfUE9DS0VUUEpfSF9fRDkwMzIwRjhfMDFGOV80RjVDXzg2NTVfMTNDRjJGRkRERjQ4X19JTkNMVURFRF8KKworI2lmIF9NU0NfVkVSID49IDEwMDAKKyNwcmFnbWEgb25jZQorI2VuZGlmIC8vIF9NU0NfVkVSID49IDEwMDAKKworI2lmbmRlZiBfX0FGWFdJTl9IX18KKwkjZXJyb3IgaW5jbHVkZSAnc3RkYWZ4LmgnIGJlZm9yZSBpbmNsdWRpbmcgdGhpcyBmaWxlIGZvciBQQ0gKKyNlbmRpZgorCisjaW5jbHVkZSAicmVzb3VyY2UuaCIJCS8vIG1haW4gc3ltYm9scworCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gQ1BvY2tldFBKQXBwOgorLy8gU2VlIFBvY2tldFBKLmNwcCBmb3IgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgY2xhc3MKKy8vCisKK2NsYXNzIENQb2NrZXRQSkFwcCA6IHB1YmxpYyBDV2luQXBwCit7CitwdWJsaWM6CisJQ1BvY2tldFBKQXBwKCk7CisKKy8vIE92ZXJyaWRlcworCS8vIENsYXNzV2l6YXJkIGdlbmVyYXRlZCB2aXJ0dWFsIGZ1bmN0aW9uIG92ZXJyaWRlcworCS8ve3tBRlhfVklSVFVBTChDUG9ja2V0UEpBcHApCisJcHVibGljOgorCXZpcnR1YWwgQk9PTCBJbml0SW5zdGFuY2UoKTsKKwkvL319QUZYX1ZJUlRVQUwKKworLy8gSW1wbGVtZW50YXRpb24KKworCS8ve3tBRlhfTVNHKENQb2NrZXRQSkFwcCkKKwkJLy8gTk9URSAtIHRoZSBDbGFzc1dpemFyZCB3aWxsIGFkZCBhbmQgcmVtb3ZlIG1lbWJlciBmdW5jdGlvbnMgaGVyZS4KKwkJLy8gICAgRE8gTk9UIEVESVQgd2hhdCB5b3Ugc2VlIGluIHRoZXNlIGJsb2NrcyBvZiBnZW5lcmF0ZWQgY29kZSAhCisJLy99fUFGWF9NU0cKKwlERUNMQVJFX01FU1NBR0VfTUFQKCkKK307CisKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy97e0FGWF9JTlNFUlRfTE9DQVRJT059fQorLy8gTWljcm9zb2Z0IGVNYmVkZGVkIFZpc3VhbCBDKysgd2lsbCBpbnNlcnQgYWRkaXRpb25hbCBkZWNsYXJhdGlvbnMgaW1tZWRpYXRlbHkgYmVmb3JlIHRoZSBwcmV2aW91cyBsaW5lLgorCisjZW5kaWYgLy8gIWRlZmluZWQoQUZYX1BPQ0tFVFBKX0hfX0Q5MDMyMEY4XzAxRjlfNEY1Q184NjU1XzEzQ0YyRkZEREY0OF9fSU5DTFVERURfKQpkaWZmIC0tZ2l0IGEvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovUG9ja2V0UEoucmMgYi9wanNpcC1hcHBzL3NyYy9wb2NrZXRwai9Qb2NrZXRQSi5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41N2U4MDRjCi0tLSAvZGV2L251bGwKKysrIGIvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovUG9ja2V0UEoucmMKQEAgLTAsMCArMSwzMDMgQEAKKy8vTWljcm9zb2Z0IGVNYmVkZGVkIFZpc3VhbCBDKysgZ2VuZXJhdGVkIHJlc291cmNlIHNjcmlwdC4NCisvLw0KKyNpbmNsdWRlICJyZXNvdXJjZS5oIg0KKw0KKyNkZWZpbmUgQVBTVFVESU9fUkVBRE9OTFlfU1lNQk9MUw0KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQorLy8NCisvLyBHZW5lcmF0ZWQgZnJvbSB0aGUgVEVYVElOQ0xVREUgMiByZXNvdXJjZS4NCisvLw0KKyNpbmNsdWRlICJhZnhyZXMuaCINCisjaW5jbHVkZSAibmV3cmVzLmgiDQorDQorLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCisjdW5kZWYgQVBTVFVESU9fUkVBRE9OTFlfU1lNQk9MUw0KKw0KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQorLy8gRW5nbGlzaCAoVS5TLikgcmVzb3VyY2VzDQorDQorI2lmICFkZWZpbmVkKEFGWF9SRVNPVVJDRV9ETEwpIHx8IGRlZmluZWQoQUZYX1RBUkdfRU5VKQ0KKyNpZmRlZiBfV0lOMzINCitMQU5HVUFHRSBMQU5HX0VOR0xJU0gsIFNVQkxBTkdfRU5HTElTSF9VUw0KKyNwcmFnbWEgY29kZV9wYWdlKDEyNTIpDQorI2VuZGlmIC8vX1dJTjMyDQorDQorI2lmZGVmIEFQU1RVRElPX0lOVk9LRUQNCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KKy8vDQorLy8gVEVYVElOQ0xVREUNCisvLw0KKw0KKzEgVEVYVElOQ0xVREUgRElTQ0FSREFCTEUgDQorQkVHSU4NCisgICAgInJlc291cmNlLmhcMCINCitFTkQNCisNCisyIFRFWFRJTkNMVURFIERJU0NBUkRBQkxFIA0KK0JFR0lODQorICAgICIjaW5jbHVkZSAiImFmeHJlcy5oIiJcclxuIg0KKyAgICAiI2luY2x1ZGUgIiJuZXdyZXMuaCIiXHJcbiINCisgICAgIlwwIg0KK0VORA0KKw0KKzMgVEVYVElOQ0xVREUgRElTQ0FSREFCTEUgDQorQkVHSU4NCisgICAgIiNkZWZpbmUgX0FGWF9OT19TUExJVFRFUl9SRVNPVVJDRVNcclxuIg0KKyAgICAiI2RlZmluZSBfQUZYX05PX09MRV9SRVNPVVJDRVNcclxuIg0KKyAgICAiI2RlZmluZSBfQUZYX05PX1RSQUNLRVJfUkVTT1VSQ0VTXHJcbiINCisgICAgIiNkZWZpbmUgX0FGWF9OT19QUk9QRVJUWV9SRVNPVVJDRVNcclxuIg0KKyAgICAiXHJcbiINCisgICAgIiNpZiAhZGVmaW5lZChBRlhfUkVTT1VSQ0VfRExMKSB8fCBkZWZpbmVkKEFGWF9UQVJHX0VOVSlcclxuIg0KKyAgICAiI2lmZGVmIF9XSU4zMlxyXG4iDQorICAgICJMQU5HVUFHRSA5LCAxXHJcbiINCisgICAgIiNwcmFnbWEgY29kZV9wYWdlKDEyNTIpXHJcbiINCisgICAgIiNlbmRpZiAvL19XSU4zMlxyXG4iDQorICAgICIjaW5jbHVkZSAiInJlc1xcUG9ja2V0UEoucmMyIiIgIC8vIG5vbi1NaWNyb3NvZnQgZU1iZWRkZWQgVmlzdWFsIEMrKyBlZGl0ZWQgcmVzb3VyY2VzXHJcbiINCisgICAgIiNpbmNsdWRlICIiYWZ4cmVzLnJjIiIgICAgICAgICAvLyBTdGFuZGFyZCBjb21wb25lbnRzXHJcbiINCisgICAgIiNpbmNsdWRlICIid2NlcmVzLnJjIiIgICAgICAgICAvLyBXQ0Utc3BlY2lmaWMgY29tcG9uZW50c1xyXG4iDQorICAgICIjZW5kaWZcclxuIg0KKyAgICAiXDAiDQorRU5EDQorDQorI2VuZGlmICAgIC8vIEFQU1RVRElPX0lOVk9LRUQNCisNCisNCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KKy8vDQorLy8gSWNvbg0KKy8vDQorDQorLy8gSWNvbiB3aXRoIGxvd2VzdCBJRCB2YWx1ZSBwbGFjZWQgZmlyc3QgdG8gZW5zdXJlIGFwcGxpY2F0aW9uIGljb24NCisvLyByZW1haW5zIGNvbnNpc3RlbnQgb24gYWxsIHN5c3RlbXMuDQorSURSX01BSU5GUkFNRSAgICAgICAgICAgSUNPTiAgICBESVNDQVJEQUJMRSAgICAgInJlc1xcUG9ja2V0UEouaWNvIg0KK0lESV9PTkxJTkUgICAgICAgICAgICAgIElDT04gICAgRElTQ0FSREFCTEUgICAgICJyZXNcXG9ubGluZS5pY28iDQorSURJX09GRkxJTkUgICAgICAgICAgICAgSUNPTiAgICBESVNDQVJEQUJMRSAgICAgInJlc1xcb2ZmbGluZS5pY28iDQorSURJX0lOVklTSUJMRSAgICAgICAgICAgSUNPTiAgICBESVNDQVJEQUJMRSAgICAgInJlc1xcaW52aXNpYmwuaWNvIg0KKw0KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQorLy8NCisvLyBEaWFsb2cNCisvLw0KKw0KK0lERF9QT0NLRVRQSl9ESUFMT0cgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAxMzksIDE1MQ0KK1NUWUxFIFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04NCitFWFNUWUxFIFdTX0VYX0FQUFdJTkRPVyB8IDB4ODAwMDAwMDBMDQorQ0FQVElPTiAiUG9ja2V0UEoiDQorRk9OVCA4LCAiU3lzdGVtIg0KK0JFR0lODQorICAgIExURVhUICAgICAgICAgICAic2lwOnVzZXJAcGpzaXAubGFiIixJRENfQUNDX0lELDIyLDUsMTE1LDgNCisgICAgQ09OVFJPTCAgICAgICAgIDEzNSxJRENfQlROX0FDQywiU3RhdGljIixTU19CSVRNQVAgfCBTU19OT1RJRlkgfCANCisgICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNywzLDEyLDExDQorICAgIENPTlRST0wgICAgICAgICAiTGlzdDEiLElEQ19CVUREWV9MSVNULCJTeXNMaXN0VmlldzMyIixMVlNfU01BTExJQ09OIHwgDQorICAgICAgICAgICAgICAgICAgICBMVlNfU0lOR0xFU0VMIHwgTFZTX1NPUlRBU0NFTkRJTkcgfCBXU19CT1JERVIgfCANCisgICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNywzNSwxMjcsMTA5DQorICAgIExURVhUICAgICAgICAgICAiVVJMOiIsSURDX1NUQVRJQyw3LDE5LDE2LDgNCisgICAgRURJVFRFWFQgICAgICAgIElEQ19VUkwsMjUsMTYsOTcsMTIsRVNfQVVUT0hTQ1JPTEwNCisgICAgQ09OVFJPTCAgICAgICAgIDEzOCxJRENfQlROX0FDVElPTiwiU3RhdGljIixTU19CSVRNQVAgfCBTU19OT1RJRlkgfCANCisgICAgICAgICAgICAgICAgICAgIFdTX0JPUkRFUiwxMjUsMTYsMTIsMTENCitFTkQNCisNCitJRERfU0VUVElORyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDE0MCwgMTE5DQorU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUNCitDQVBUSU9OICJQb2NrZXRQSiBTZXR0aW5ncy4uIg0KK0ZPTlQgOCwgIlN5c3RlbSINCitCRUdJTg0KKyAgICBMVEVYVCAgICAgICAgICAgIkRvbWFpbjoiLElEQ19TVEFUSUMsNyw4LDMwLDkNCisgICAgRURJVFRFWFQgICAgICAgIElEQ19ET01BSU4sMzgsNyw3OCwxMixFU19BVVRPSFNDUk9MTA0KKyAgICBFRElUVEVYVCAgICAgICAgSURDX1VTRVIsMzgsMjEsNzgsMTIsRVNfQVVUT0hTQ1JPTEwNCisgICAgRURJVFRFWFQgICAgICAgIElEQ19QQVNTV0QsMzgsMzUsNzgsMTIsRVNfUEFTU1dPUkQgfCBFU19BVVRPSFNDUk9MTA0KKyAgICBMVEVYVCAgICAgICAgICAgIlVzZXI6IixJRENfU1RBVElDLDcsMjIsMzAsOQ0KKyAgICBMVEVYVCAgICAgICAgICAgIlBhc3N3ZDoiLElEQ19TVEFUSUMsNywzNiwzMCw5DQorICAgIENPTlRST0wgICAgICAgICAiU1RVTiBTcnY6IixJRENfU1RVTiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCANCisgICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNyw2NSw0NywxMA0KKyAgICBFRElUVEVYVCAgICAgICAgSURDX1NUVU5fU1JWLDU2LDY0LDc3LDEyLEVTX0FVVE9IU0NST0xMDQorICAgIENPTlRST0wgICAgICAgICAiSUNFIixJRENfSUNFLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsNyw4MCwNCisgICAgICAgICAgICAgICAgICAgIDI3LDEwDQorICAgIENPTlRST0wgICAgICAgICAiU1JUUCIsSURDX1NSVFAsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw0NywNCisgICAgICAgICAgICAgICAgICAgIDgwLDMzLDEwDQorICAgIENPTlRST0wgICAgICAgICAiUFVCTElTSCIsSURDX1BVQkxJU0gsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgDQorICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDg1LDgwLDQzLDEwDQorICAgIEVESVRURVhUICAgICAgICBJRENfRE5TLDM4LDQ5LDc4LDEyLEVTX0FVVE9IU0NST0xMDQorICAgIExURVhUICAgICAgICAgICAiRE5TOiIsSURDX1NUQVRJQyw4LDUwLDMwLDkNCisgICAgUFVTSEJVVFRPTiAgICAgICJPSyIsSURPSywxNyw5OCw1MCwxNA0KKyAgICBQVVNIQlVUVE9OICAgICAgIkNhbmNlbCIsSURDQU5DRUwsNzMsOTgsNTAsMTQNCitFTkQNCisNCisNCisjaWZuZGVmIF9NQUMNCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KKy8vDQorLy8gVmVyc2lvbg0KKy8vDQorDQorVlNfVkVSU0lPTl9JTkZPIFZFUlNJT05JTkZPDQorIEZJTEVWRVJTSU9OIDEsMCwwLDENCisgUFJPRFVDVFZFUlNJT04gMSwwLDAsMQ0KKyBGSUxFRkxBR1NNQVNLIDB4M2ZMDQorI2lmZGVmIF9ERUJVRw0KKyBGSUxFRkxBR1MgMHgxTA0KKyNlbHNlDQorIEZJTEVGTEFHUyAweDBMDQorI2VuZGlmDQorIEZJTEVPUyAweDRMDQorIEZJTEVUWVBFIDB4MUwNCisgRklMRVNVQlRZUEUgMHgwTA0KK0JFR0lODQorICAgIEJMT0NLICJTdHJpbmdGaWxlSW5mbyINCisgICAgQkVHSU4NCisgICAgICAgIEJMT0NLICIwNDA5MDRCMCINCisgICAgICAgIEJFR0lODQorICAgICAgICAgICAgVkFMVUUgIkNvbXBhbnlOYW1lIiwgIkhQXDAiDQorICAgICAgICAgICAgVkFMVUUgIkZpbGVEZXNjcmlwdGlvbiIsICJQb2NrZXRQSiBXQ0UgTUZDIEFwcGxpY2F0aW9uXDAiDQorICAgICAgICAgICAgVkFMVUUgIkZpbGVWZXJzaW9uIiwgIjEsIDAsIDAsIDFcMCINCisgICAgICAgICAgICBWQUxVRSAiSW50ZXJuYWxOYW1lIiwgIlBvY2tldFBKXDAiDQorICAgICAgICAgICAgVkFMVUUgIkxlZ2FsQ29weXJpZ2h0IiwgIkNvcHlyaWdodCCpIDIwMDhcMCINCisgICAgICAgICAgICBWQUxVRSAiTGVnYWxUcmFkZW1hcmtzIiwgIlwwIg0KKyAgICAgICAgICAgIFZBTFVFICJPcmlnaW5hbEZpbGVuYW1lIiwgIlBvY2tldFBKLmV4ZVwwIg0KKyAgICAgICAgICAgIFZBTFVFICJQcm9kdWN0TmFtZSIsICJQb2NrZXRQSiBBcHBsaWNhdGlvblwwIg0KKyAgICAgICAgICAgIFZBTFVFICJQcm9kdWN0VmVyc2lvbiIsICIxLCAwLCAwLCAxXDAiDQorICAgICAgICBFTkQNCisgICAgRU5EDQorICAgIEJMT0NLICJWYXJGaWxlSW5mbyINCisgICAgQkVHSU4NCisgICAgICAgIFZBTFVFICJUcmFuc2xhdGlvbiIsIDB4NDA5LCAxMjAwDQorICAgIEVORA0KK0VORA0KKw0KKyNlbmRpZiAgICAvLyAhX01BQw0KKw0KKw0KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQorLy8NCisvLyBERVNJR05JTkZPDQorLy8NCisNCisjaWZkZWYgQVBTVFVESU9fSU5WT0tFRA0KK0dVSURFTElORVMgREVTSUdOSU5GTyBESVNDQVJEQUJMRSANCitCRUdJTg0KKyAgICBJRERfUE9DS0VUUEpfRElBTE9HLCBESUFMT0cNCisgICAgQkVHSU4NCisgICAgICAgIExFRlRNQVJHSU4sIDcNCisgICAgICAgIFJJR0hUTUFSR0lOLCAxMzcNCisgICAgICAgIFRPUE1BUkdJTiwgNw0KKyAgICAgICAgQk9UVE9NTUFSR0lOLCAxNDQNCisgICAgICAgIEhPUlpHVUlERSwgMjgNCisgICAgRU5EDQorDQorICAgIElERF9TRVRUSU5HLCBESUFMT0cNCisgICAgQkVHSU4NCisgICAgICAgIExFRlRNQVJHSU4sIDcNCisgICAgICAgIFJJR0hUTUFSR0lOLCAxMzMNCisgICAgICAgIFRPUE1BUkdJTiwgNw0KKyAgICAgICAgQk9UVE9NTUFSR0lOLCAxMTINCisgICAgRU5EDQorRU5EDQorI2VuZGlmICAgIC8vIEFQU1RVRElPX0lOVk9LRUQNCisNCisNCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KKy8vDQorLy8gQml0bWFwDQorLy8NCisNCitJREJfT05MSU5FICAgICAgICAgICAgICBCSVRNQVAgIERJU0NBUkRBQkxFICAgICAicmVzXFxvbmxpbmUuYm1wIg0KK0lEQl9PRkZMSU5FICAgICAgICAgICAgIEJJVE1BUCAgRElTQ0FSREFCTEUgICAgICJyZXNcXG9mZmxpbmUuYm1wIg0KK0lEQl9JTlZJU0lCTEUgICAgICAgICAgIEJJVE1BUCAgRElTQ0FSREFCTEUgICAgICJyZXNcXGludmlzaWJsLmJtcCINCitJREJfQUNUSU9OICAgICAgICAgICAgICBCSVRNQVAgIERJU0NBUkRBQkxFICAgICAicmVzXFxhY3Rpb24uYm1wIg0KK0lEQl9CTEFOSyAgICAgICAgICAgICAgIEJJVE1BUCAgRElTQ0FSREFCTEUgICAgICJyZXNcXGJsYW5rLmJtcCINCisNCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KKy8vDQorLy8gTWVudWJhcg0KKy8vDQorDQorSURSX0FDQ19NRU5VIE1FTlUgRElTQ0FSREFCTEUgDQorQkVHSU4NCisgICAgUE9QVVAgIlNldCBPbmxpbmUgU3RhdHVzOiINCisgICAgQkVHSU4NCisgICAgICAgIE1FTlVJVEVNICImT25saW5lIiwgICAgICAgICAgICAgICAgICAgICBJRENfQUNDX09OTElORQ0KKyAgICAgICAgTUVOVUlURU0gIiZJbnZpc2libGUiLCAgICAgICAgICAgICAgICAgIElEQ19BQ0NfSU5WSVNJQkxFDQorICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1INCisgICAgICAgIE1FTlVJVEVNICImU2V0dGluZ3MuLi4iLCAgICAgICAgICAgICAgICBJRENfQUNDX1NFVFRJTkdTDQorICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1INCisgICAgICAgIE1FTlVJVEVNICJFJnhpdCIsICAgICAgICAgICAgICAgICAgICAgICBJRE9LDQorICAgIEVORA0KK0VORA0KKw0KK0lEUl9VUklfTUVOVSBNRU5VIERJU0NBUkRBQkxFIA0KK0JFR0lODQorICAgIFBPUFVQICJVUkkgQWN0aW9uIg0KKyAgICBCRUdJTg0KKyAgICAgICAgTUVOVUlURU0gIiZDYWxsLi4uIiwgICAgICAgICAgICAgICAgICAgIElEQ19VUklfQ0FMTA0KKyAgICAgICAgTUVOVUlURU0gIkFkZCB0byBCdWRkeSBMaXN0IiwgICAgICAgICAgIElEQ19VUklfQUREX0JVRERZDQorICAgICAgICBNRU5VSVRFTSAiJkRlbCBCdWRkeSIsICAgICAgICAgICAgICAgICAgSURDX1VSSV9ERUxfQlVERFkNCisgICAgRU5EDQorRU5EDQorDQorDQorLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCisvLw0KKy8vIERhdGENCisvLw0KKw0KK0lEUl9BQ0NfTUVOVSBTSE1FTlVCQVIgRElTQ0FSREFCTEUgDQorQkVHSU4NCisgICAgSURSX0FDQ19NRU5VLCAxLA0KKyAgICBJX0lNQUdFTk9ORSwgSURDX01FTlUxLCBUQlNUQVRFX0VOQUJMRUQsIA0KKyAgICBUQlNUWUxFX0RST1BET1dOIHwgVEJTVFlMRV9BVVRPU0laRSwgSURTX0NBUF9NRU5VSVRFTTMyNzg2LCAwLCAwLA0KK0VORA0KKw0KK0lEUl9VUklfTUVOVSBTSE1FTlVCQVIgRElTQ0FSREFCTEUgDQorQkVHSU4NCisgICAgSURSX1VSSV9NRU5VLCAxLA0KKyAgICBJX0lNQUdFTk9ORSwgSURDX01FTlUyLCBUQlNUQVRFX0VOQUJMRUQsIA0KKyAgICBUQlNUWUxFX0RST1BET1dOIHwgVEJTVFlMRV9BVVRPU0laRSwgSURTX0NBUF9NRU5VSVRFTTMyNzkwLCAwLCAwLA0KK0VORA0KKw0KKw0KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQorLy8NCisvLyBTdHJpbmcgVGFibGUNCisvLw0KKw0KK1NUUklOR1RBQkxFIERJU0NBUkRBQkxFIA0KK0JFR0lODQorICAgIElEU19DQVBfT05MSU5FICAgICAgICAgICJPbmxpbmUiDQorICAgIElEU19DQVBfT0ZGTElORSAgICAgICAgICJPZmZsaW5lIg0KKyAgICBJRFNfQ0FQX0lOVklTSUJMRSAgICAgICAiSW52aXNpYmxlIg0KK0VORA0KKw0KK1NUUklOR1RBQkxFIERJU0NBUkRBQkxFIA0KK0JFR0lODQorICAgIElEU19DQVBfTUVOVUlURU0zMjc4NiAgICJTZXQgT25saW5lIFN0YXR1czoiDQorICAgIElEU19DQVBfTUVOVUlURU0zMjc5MCAgICJVUkkgQWN0aW9uIg0KK0VORA0KKw0KKyNlbmRpZiAgICAvLyBFbmdsaXNoIChVLlMuKSByZXNvdXJjZXMNCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KKw0KKw0KKw0KKyNpZm5kZWYgQVBTVFVESU9fSU5WT0tFRA0KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQorLy8NCisvLyBHZW5lcmF0ZWQgZnJvbSB0aGUgVEVYVElOQ0xVREUgMyByZXNvdXJjZS4NCisvLw0KKyNkZWZpbmUgX0FGWF9OT19TUExJVFRFUl9SRVNPVVJDRVMNCisjZGVmaW5lIF9BRlhfTk9fT0xFX1JFU09VUkNFUw0KKyNkZWZpbmUgX0FGWF9OT19UUkFDS0VSX1JFU09VUkNFUw0KKyNkZWZpbmUgX0FGWF9OT19QUk9QRVJUWV9SRVNPVVJDRVMNCisNCisjaWYgIWRlZmluZWQoQUZYX1JFU09VUkNFX0RMTCkgfHwgZGVmaW5lZChBRlhfVEFSR19FTlUpDQorI2lmZGVmIF9XSU4zMg0KK0xBTkdVQUdFIDksIDENCisjcHJhZ21hIGNvZGVfcGFnZSgxMjUyKQ0KKyNlbmRpZiAvL19XSU4zMg0KKyNpbmNsdWRlICJyZXNcUG9ja2V0UEoucmMyIiAgLy8gbm9uLU1pY3Jvc29mdCBlTWJlZGRlZCBWaXN1YWwgQysrIGVkaXRlZCByZXNvdXJjZXMNCisjaW5jbHVkZSAiYWZ4cmVzLnJjIiAgICAgICAgIC8vIFN0YW5kYXJkIGNvbXBvbmVudHMNCisjaW5jbHVkZSAid2NlcmVzLnJjIiAgICAgICAgIC8vIFdDRS1zcGVjaWZpYyBjb21wb25lbnRzDQorI2VuZGlmDQorDQorLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCisjZW5kaWYgICAgLy8gbm90IEFQU1RVRElPX0lOVk9LRUQNCisNCmRpZmYgLS1naXQgYS9wanNpcC1hcHBzL3NyYy9wb2NrZXRwai9Qb2NrZXRQSi52Y2MgYi9wanNpcC1hcHBzL3NyYy9wb2NrZXRwai9Qb2NrZXRQSi52Y2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWViMDFjNgotLS0gL2Rldi9udWxsCisrKyBiL3Bqc2lwLWFwcHMvc3JjL3BvY2tldHBqL1BvY2tldFBKLnZjYwpAQCAtMCwwICsxLDk0IEBACis7IENMVyBmaWxlIGNvbnRhaW5zIGluZm9ybWF0aW9uIGZvciB0aGUgTUZDIENsYXNzV2l6YXJkDQorDQorW0dlbmVyYWwgSW5mb10NCitWZXJzaW9uPTENCitMYXN0Q2xhc3M9Q1NldHRpbmdzRGxnDQorTGFzdFRlbXBsYXRlPUNEaWFsb2cNCitOZXdGaWxlSW5jbHVkZTE9I2luY2x1ZGUgInN0ZGFmeC5oIg0KK05ld0ZpbGVJbmNsdWRlMj0jaW5jbHVkZSAiUG9ja2V0UEouaCINCisNCitDbGFzc0NvdW50PTMNCitDbGFzczE9Q1BvY2tldFBKQXBwDQorQ2xhc3MyPUNQb2NrZXRQSkRsZw0KKw0KK1Jlc291cmNlQ291bnQ9NQ0KK1Jlc291cmNlMj1JRFJfQUNDX01FTlUNCitSZXNvdXJjZTM9SURSX1VSSV9NRU5VDQorUmVzb3VyY2U0PUlERF9TRVRUSU5HDQorUmVzb3VyY2UxPUlEUl9NQUlORlJBTUUNCitDbGFzczM9Q1NldHRpbmdzRGxnDQorUmVzb3VyY2U1PUlERF9QT0NLRVRQSl9ESUFMT0cNCisNCitbQ0xTOkNQb2NrZXRQSkFwcF0NCitUeXBlPTANCitIZWFkZXJGaWxlPVBvY2tldFBKLmgNCitJbXBsZW1lbnRhdGlvbkZpbGU9UG9ja2V0UEouY3BwDQorRmlsdGVyPU4NCisNCitbQ0xTOkNQb2NrZXRQSkRsZ10NCitUeXBlPTANCitIZWFkZXJGaWxlPVBvY2tldFBKRGxnLmgNCitJbXBsZW1lbnRhdGlvbkZpbGU9UG9ja2V0UEpEbGcuY3BwDQorRmlsdGVyPUQNCitCYXNlQ2xhc3M9Q0RpYWxvZw0KK1ZpcnR1YWxGaWx0ZXI9ZFdDDQorTGFzdE9iamVjdD1DUG9ja2V0UEpEbGcNCisNCisNCitbRExHOklERF9QT0NLRVRQSl9ESUFMT0ddDQorVHlwZT0xDQorQ2xhc3M9Q1BvY2tldFBKRGxnDQorQ29udHJvbENvdW50PTYNCitDb250cm9sMT1JRENfQUNDX0lELHN0YXRpYywxMzQyMzA4MzUyDQorQ29udHJvbDI9SURDX0JUTl9BQ0Msc3RhdGljLDEzNDIyNDMwODYNCitDb250cm9sMz1JRENfQlVERFlfTElTVCxTeXNMaXN0VmlldzMyLDEzNTA2MzE0NDYNCitDb250cm9sND1JRENfU1RBVElDLHN0YXRpYywxMzQyMzA4MzUyDQorQ29udHJvbDU9SURDX1VSTCxlZGl0LDEzNTA2MzE1NTINCitDb250cm9sNj1JRENfQlROX0FDVElPTixzdGF0aWMsMTM1MDU2NjE1OA0KKw0KK1tNTlU6SURSX0FDQ19NRU5VXQ0KK1R5cGU9MQ0KK0NsYXNzPUNQb2NrZXRQSkRsZw0KK0NvbW1hbmQxPUlEQ19BQ0NfT05MSU5FDQorQ29tbWFuZDI9SURDX0FDQ19JTlZJU0lCTEUNCitDb21tYW5kMz1JRENfQUNDX1NFVFRJTkdTDQorQ29tbWFuZDQ9SURPSw0KK0NvbW1hbmRDb3VudD00DQorDQorW01OVTpJRFJfVVJJX01FTlVdDQorVHlwZT0xDQorQ2xhc3M9Q1BvY2tldFBKRGxnDQorQ29tbWFuZDE9SURDX1VSSV9DQUxMDQorQ29tbWFuZDI9SURDX1VSSV9BRERfQlVERFkNCitDb21tYW5kMz1JRENfVVJJX0RFTF9CVUREWQ0KK0NvbW1hbmRDb3VudD0zDQorDQorW0RMRzpJRERfU0VUVElOR10NCitUeXBlPTENCitDbGFzcz1DU2V0dGluZ3NEbGcNCitDb250cm9sQ291bnQ9MTUNCitDb250cm9sMT1JRENfU1RBVElDLHN0YXRpYywxMzQyMzA4MzUyDQorQ29udHJvbDI9SURDX0RPTUFJTixlZGl0LDEzNTA2MzE1NTINCitDb250cm9sMz1JRENfVVNFUixlZGl0LDEzNTA2MzE1NTINCitDb250cm9sND1JRENfUEFTU1dELGVkaXQsMTM1MDYzMTU4NA0KK0NvbnRyb2w1PUlEQ19TVEFUSUMsc3RhdGljLDEzNDIzMDgzNTINCitDb250cm9sNj1JRENfU1RBVElDLHN0YXRpYywxMzQyMzA4MzUyDQorQ29udHJvbDc9SURDX1NUVU4sYnV0dG9uLDEzNDIyNDI4MTkNCitDb250cm9sOD1JRENfU1RVTl9TUlYsZWRpdCwxMzUwNjMxNTUyDQorQ29udHJvbDk9SURDX0lDRSxidXR0b24sMTM0MjI0MjgxOQ0KK0NvbnRyb2wxMD1JRENfU1JUUCxidXR0b24sMTM0MjI0MjgxOQ0KK0NvbnRyb2wxMT1JRENfUFVCTElTSCxidXR0b24sMTM0MjI0MjgxOQ0KK0NvbnRyb2wxMj1JRENfRE5TLGVkaXQsMTM1MDYzMTU1Mg0KK0NvbnRyb2wxMz1JRENfU1RBVElDLHN0YXRpYywxMzQyMzA4MzUyDQorQ29udHJvbDE0PUlET0ssYnV0dG9uLDEzNDIyNDI4MTYNCitDb250cm9sMTU9SURDQU5DRUwsYnV0dG9uLDEzNDIyNDI4MTYNCisNCitbQ0xTOkNTZXR0aW5nc0RsZ10NCitUeXBlPTANCitIZWFkZXJGaWxlPVNldHRpbmdzRGxnLmgNCitJbXBsZW1lbnRhdGlvbkZpbGU9U2V0dGluZ3NEbGcuY3BwDQorQmFzZUNsYXNzPUNEaWFsb2cNCitGaWx0ZXI9RA0KK1ZpcnR1YWxGaWx0ZXI9ZFdDDQorTGFzdE9iamVjdD1DU2V0dGluZ3NEbGcNCisNCmRpZmYgLS1naXQgYS9wanNpcC1hcHBzL3NyYy9wb2NrZXRwai9Qb2NrZXRQSi52Y3AgYi9wanNpcC1hcHBzL3NyYy9wb2NrZXRwai9Qb2NrZXRQSi52Y3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDcxY2MxNQotLS0gL2Rldi9udWxsCisrKyBiL3Bqc2lwLWFwcHMvc3JjL3BvY2tldHBqL1BvY2tldFBKLnZjcApAQCAtMCwwICsxLDE5MjMgQEAKKyMgTWljcm9zb2Z0IGVNYmVkZGVkIFZpc3VhbCBUb29scyBQcm9qZWN0IEZpbGUgLSBOYW1lPSJQb2NrZXRQSiIgLSBQYWNrYWdlIE93bmVyPTw0Pg0KKyMgTWljcm9zb2Z0IGVNYmVkZGVkIFZpc3VhbCBUb29scyBHZW5lcmF0ZWQgQnVpbGQgRmlsZSwgRm9ybWF0IFZlcnNpb24gNi4wMg0KKyMgKiogRE8gTk9UIEVESVQgKioNCisNCisjIFRBUkdUWVBFICJXaW4zMiAoV0NFIEFSTVY0KSBBcHBsaWNhdGlvbiIgMHhhMzAxDQorIyBUQVJHVFlQRSAiV2luMzIgKFdDRSBlbXVsYXRvcikgQXBwbGljYXRpb24iIDB4YTYwMQ0KKw0KK0NGRz1Qb2NrZXRQSiAtIFdpbjMyIChXQ0UgZW11bGF0b3IpIERlYnVnDQorIU1FU1NBR0UgVGhpcyBpcyBub3QgYSB2YWxpZCBtYWtlZmlsZS4gVG8gYnVpbGQgdGhpcyBwcm9qZWN0IHVzaW5nIE5NQUtFLA0KKyFNRVNTQUdFIHVzZSB0aGUgRXhwb3J0IE1ha2VmaWxlIGNvbW1hbmQgYW5kIHJ1bg0KKyFNRVNTQUdFIA0KKyFNRVNTQUdFIE5NQUtFIC9mICJQb2NrZXRQSi52Y24iLg0KKyFNRVNTQUdFIA0KKyFNRVNTQUdFIFlvdSBjYW4gc3BlY2lmeSBhIGNvbmZpZ3VyYXRpb24gd2hlbiBydW5uaW5nIE5NQUtFDQorIU1FU1NBR0UgYnkgZGVmaW5pbmcgdGhlIG1hY3JvIENGRyBvbiB0aGUgY29tbWFuZCBsaW5lLiBGb3IgZXhhbXBsZToNCishTUVTU0FHRSANCishTUVTU0FHRSBOTUFLRSAvZiAiUG9ja2V0UEoudmNuIiBDRkc9IlBvY2tldFBKIC0gV2luMzIgKFdDRSBlbXVsYXRvcikgRGVidWciDQorIU1FU1NBR0UgDQorIU1FU1NBR0UgUG9zc2libGUgY2hvaWNlcyBmb3IgY29uZmlndXJhdGlvbiBhcmU6DQorIU1FU1NBR0UgDQorIU1FU1NBR0UgIlBvY2tldFBKIC0gV2luMzIgKFdDRSBlbXVsYXRvcikgUmVsZWFzZSIgKGJhc2VkIG9uICJXaW4zMiAoV0NFIGVtdWxhdG9yKSBBcHBsaWNhdGlvbiIpDQorIU1FU1NBR0UgIlBvY2tldFBKIC0gV2luMzIgKFdDRSBlbXVsYXRvcikgRGVidWciIChiYXNlZCBvbiAiV2luMzIgKFdDRSBlbXVsYXRvcikgQXBwbGljYXRpb24iKQ0KKyFNRVNTQUdFICJQb2NrZXRQSiAtIFdpbjMyIChXQ0UgQVJNVjQpIFJlbGVhc2UiIChiYXNlZCBvbiAiV2luMzIgKFdDRSBBUk1WNCkgQXBwbGljYXRpb24iKQ0KKyFNRVNTQUdFICJQb2NrZXRQSiAtIFdpbjMyIChXQ0UgQVJNVjQpIERlYnVnIiAoYmFzZWQgb24gIldpbjMyIChXQ0UgQVJNVjQpIEFwcGxpY2F0aW9uIikNCishTUVTU0FHRSANCisNCisjIEJlZ2luIFByb2plY3QNCisjIFBST1AgQWxsb3dQZXJDb25maWdEZXBlbmRlbmNpZXMgMA0KKyMgUFJPUCBTY2NfUHJvak5hbWUgIiINCisjIFBST1AgU2NjX0xvY2FsUGF0aCAiIg0KKyMgUFJPUCBBVExfUHJvamVjdCAyDQorDQorIUlGICAiJChDRkcpIiA9PSAiUG9ja2V0UEogLSBXaW4zMiAoV0NFIGVtdWxhdG9yKSBSZWxlYXNlIg0KKw0KKyMgUFJPUCBCQVNFIFVzZV9NRkMgMg0KKyMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMA0KKyMgUFJPUCBCQVNFIE91dHB1dF9EaXIgImVtdWxhdG9yUmVsIg0KKyMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgImVtdWxhdG9yUmVsIg0KKyMgUFJPUCBCQVNFIENQVV9JRCAiezMyRTUyMDAzLTQwM0UtNDQyRC1CRTQ4LURFMTBGOEM2MTMxRH0iDQorIyBQUk9QIEJBU0UgUGxhdGZvcm1fSUQgIns4QTlBMkY4MC02ODg3LTExRDMtODQyRS0wMDUwMDQ4NDhDQkF9Ig0KKyMgUFJPUCBCQVNFIFRhcmdldF9EaXIgIiINCisjIFBST1AgVXNlX01GQyAyDQorIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMA0KKyMgUFJPUCBPdXRwdXRfRGlyICJlbXVsYXRvclJlbCINCisjIFBST1AgSW50ZXJtZWRpYXRlX0RpciAiZW11bGF0b3JSZWwiDQorIyBQUk9QIENQVV9JRCAiezMyRTUyMDAzLTQwM0UtNDQyRC1CRTQ4LURFMTBGOEM2MTMxRH0iDQorIyBQUk9QIFBsYXRmb3JtX0lEICJ7OEE5QTJGODAtNjg4Ny0xMUQzLTg0MkUtMDA1MDA0ODQ4Q0JBfSINCisjIFBST1AgVGFyZ2V0X0RpciAiIg0KK1JTQz1yYy5leGUNCisjIEFERCBCQVNFIFJTQyAvbCAweDQwOSAvZCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL2QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL2QgIlVOSUNPREUiIC9kICJfVU5JQ09ERSIgL2QgIk5ERUJVRyIgL2QgIiQoQ2VQbGF0Zm9ybSkiIC9kICJfWDg2XyIgL2QgIng4NiIgL2QgIl9pMzg2XyIgL2QgIl9BRlhETEwiIC9yDQorIyBBREQgUlNDIC9sIDB4NDA5IC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIl9VTklDT0RFIiAvZCAiTkRFQlVHIiAvZCAiJChDZVBsYXRmb3JtKSIgL2QgIl9YODZfIiAvZCAieDg2IiAvZCAiX2kzODZfIiAvZCAiX0FGWERMTCIgL3INCitDUFA9Y2wuZXhlDQorIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvVzMgL0QgIl9pMzg2XyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENlUGxhdGZvcm0pIiAvRCAiVU5JQ09ERSIgL0QgIl9VTklDT0RFIiAvRCAiX1g4Nl8iIC9EICJ4ODYiIC9EICJOREVCVUciIC9EICJfV0lOMzJfV0NFX0NFUEMiIC9EICJfQUZYRExMIiAvWXUic3RkYWZ4LmgiIC9HczgxOTIgL0dGIC9PMiAvYw0KKyMgQUREIENQUCAvbm9sb2dvIC9XMyAvRCAiX2kzODZfIiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ2VQbGF0Zm9ybSkiIC9EICJVTklDT0RFIiAvRCAiX1VOSUNPREUiIC9EICJfWDg2XyIgL0QgIng4NiIgL0QgIk5ERUJVRyIgL0QgIl9XSU4zMl9XQ0VfQ0VQQyIgL0QgIl9BRlhETEwiIC9ZdSJzdGRhZnguaCIgL0dzODE5MiAvR0YgL08yIC9jDQorTVRMPW1pZGwuZXhlDQorIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyDQorIyBBREQgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMg0KK0JTQzMyPWJzY21ha2UuZXhlDQorIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvDQorIyBBREQgQlNDMzIgL25vbG9nbw0KK0xJTkszMj1saW5rLmV4ZQ0KKyMgQUREIEJBU0UgTElOSzMyIC9ub2xvZ28gL2Jhc2U6IjB4MDAwMTAwMDAiIC9zdGFjazoweDEwMDAwLDB4MTAwMCAvZW50cnk6IndXaW5NYWluQ1JUU3RhcnR1cCIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvTUFDSElORTpJWDg2DQorIyBBREQgTElOSzMyIC9ub2xvZ28gL2Jhc2U6IjB4MDAwMTAwMDAiIC9zdGFjazoweDEwMDAwLDB4MTAwMCAvZW50cnk6IndXaW5NYWluQ1JUU3RhcnR1cCIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvTUFDSElORTpJWDg2DQorDQorIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gIlBvY2tldFBKIC0gV2luMzIgKFdDRSBlbXVsYXRvcikgRGVidWciDQorDQorIyBQUk9QIEJBU0UgVXNlX01GQyAyDQorIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAxDQorIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiZW11bGF0b3JEYmciDQorIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiZW11bGF0b3JEYmciDQorIyBQUk9QIEJBU0UgQ1BVX0lEICJ7MzJFNTIwMDMtNDAzRS00NDJELUJFNDgtREUxMEY4QzYxMzFEfSINCisjIFBST1AgQkFTRSBQbGF0Zm9ybV9JRCAiezhBOUEyRjgwLTY4ODctMTFEMy04NDJFLTAwNTAwNDg0OENCQX0iDQorIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIg0KKyMgUFJPUCBVc2VfTUZDIDINCisjIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAxDQorIyBQUk9QIE91dHB1dF9EaXIgImVtdWxhdG9yRGJnIg0KKyMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJlbXVsYXRvckRiZyINCisjIFBST1AgQ1BVX0lEICJ7MzJFNTIwMDMtNDAzRS00NDJELUJFNDgtREUxMEY4QzYxMzFEfSINCisjIFBST1AgUGxhdGZvcm1fSUQgIns4QTlBMkY4MC02ODg3LTExRDMtODQyRS0wMDUwMDQ4NDhDQkF9Ig0KKyMgUFJPUCBJZ25vcmVfRXhwb3J0X0xpYiAwDQorIyBQUk9QIFRhcmdldF9EaXIgIiINCitSU0M9cmMuZXhlDQorIyBBREQgQkFTRSBSU0MgL2wgMHg0MDkgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICJVTklDT0RFIiAvZCAiX1VOSUNPREUiIC9kICJERUJVRyIgL2QgIiQoQ2VQbGF0Zm9ybSkiIC9kICJfWDg2XyIgL2QgIng4NiIgL2QgIl9pMzg2XyIgL2QgIl9BRlhETEwiIC9yDQorIyBBREQgUlNDIC9sIDB4NDA5IC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiVU5JQ09ERSIgL2QgIl9VTklDT0RFIiAvZCAiREVCVUciIC9kICIkKENlUGxhdGZvcm0pIiAvZCAiX1g4Nl8iIC9kICJ4ODYiIC9kICJfaTM4Nl8iIC9kICJfQUZYRExMIiAvcg0KK0NQUD1jbC5leGUNCisjIEFERCBCQVNFIENQUCAvbm9sb2dvIC9XMyAvWmkgL09kIC9EICJERUJVRyIgL0QgIl9pMzg2XyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENlUGxhdGZvcm0pIiAvRCAiVU5JQ09ERSIgL0QgIl9VTklDT0RFIiAvRCAiX1g4Nl8iIC9EICJ4ODYiIC9EICJfV0lOMzJfV0NFX0NFUEMiIC9EICJfQUZYRExMIiAvWXUic3RkYWZ4LmgiIC9HczgxOTIgL0dGIC9jDQorIyBBREQgQ1BQIC9ub2xvZ28gL1czIC9aaSAvT2QgL0kgIi4uLy4uLy4uL3BqbGliL2luY2x1ZGUiIC9JICIuLi8uLi8uLi9wamxpYi11dGlsL2luY2x1ZGUiIC9JICIuLi8uLi8uLi9wam5hdGgvaW5jbHVkZSIgL0kgIi4uLy4uLy4uL3BqbWVkaWEvaW5jbHVkZSIgL0kgIi4uLy4uLy4uL3Bqc2lwL2luY2x1ZGUiIC9EICJERUJVRyIgL0QgIl9pMzg2XyIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENlUGxhdGZvcm0pIiAvRCAiVU5JQ09ERSIgL0QgIl9VTklDT0RFIiAvRCAiX1g4Nl8iIC9EICJ4ODYiIC9EICJfV0lOMzJfV0NFX0NFUEMiIC9EICJfQUZYRExMIiAvRlIgL1l1InN0ZGFmeC5oIiAvR3M4MTkyIC9HRiAvYw0KK01UTD1taWRsLmV4ZQ0KKyMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMg0KKyMgQUREIE1UTCAvbm9sb2dvIC9EICJfREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzINCitCU0MzMj1ic2NtYWtlLmV4ZQ0KKyMgQUREIEJBU0UgQlNDMzIgL25vbG9nbw0KKyMgQUREIEJTQzMyIC9ub2xvZ28NCitMSU5LMzI9bGluay5leGUNCisjIEFERCBCQVNFIExJTkszMiAvbm9sb2dvIC9iYXNlOiIweDAwMDEwMDAwIiAvc3RhY2s6MHgxMDAwMCwweDEwMDAgL2VudHJ5OiJ3V2luTWFpbkNSVFN0YXJ0dXAiIC9kZWJ1ZyAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9NQUNISU5FOklYODYNCisjIEFERCBMSU5LMzIgY29tbWN0cmwubGliIGNvcmVkbGwubGliIHdpbnNvY2subGliIHdzMi5saWIgaXBobHBhcGkubGliIC9ub2xvZ28gL2Jhc2U6IjB4MDAwMTAwMDAiIC9zdGFjazoweDEwMDAwLDB4MTAwMCAvZW50cnk6IndXaW5NYWluQ1JUU3RhcnR1cCIgL2RlYnVnIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL01BQ0hJTkU6SVg4Ng0KKw0KKyFFTFNFSUYgICIkKENGRykiID09ICJQb2NrZXRQSiAtIFdpbjMyIChXQ0UgQVJNVjQpIFJlbGVhc2UiDQorDQorIyBQUk9QIEJBU0UgVXNlX01GQyAyDQorIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAwDQorIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiQVJNVjRSZWwiDQorIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiQVJNVjRSZWwiDQorIyBQUk9QIEJBU0UgQ1BVX0lEICJ7RUNCRUE0M0QtQ0Q3Qi00ODUyLUFENTUtRDQyMjdCNUQ2MjRCfSINCisjIFBST1AgQkFTRSBQbGF0Zm9ybV9JRCAiezhBOUEyRjgwLTY4ODctMTFEMy04NDJFLTAwNTAwNDg0OENCQX0iDQorIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIg0KKyMgUFJPUCBVc2VfTUZDIDINCisjIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAwDQorIyBQUk9QIE91dHB1dF9EaXIgIkFSTVY0UmVsIg0KKyMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJBUk1WNFJlbCINCisjIFBST1AgQ1BVX0lEICJ7RUNCRUE0M0QtQ0Q3Qi00ODUyLUFENTUtRDQyMjdCNUQ2MjRCfSINCisjIFBST1AgUGxhdGZvcm1fSUQgIns4QTlBMkY4MC02ODg3LTExRDMtODQyRS0wMDUwMDQ4NDhDQkF9Ig0KKyMgUFJPUCBJZ25vcmVfRXhwb3J0X0xpYiAwDQorIyBQUk9QIFRhcmdldF9EaXIgIiINCitSU0M9cmMuZXhlDQorIyBBREQgQkFTRSBSU0MgL2wgMHg0MDkgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICJOREVCVUciIC9kICJVTklDT0RFIiAvZCAiX1VOSUNPREUiIC9kICIkKENlUGxhdGZvcm0pIiAvZCAiQVJNIiAvZCAiX0FSTV8iIC9kICJBUk1WNCIgL2QgIl9BRlhETEwiIC9yDQorIyBBREQgUlNDIC9sIDB4NDA5IC9kIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvZCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvZCAiTkRFQlVHIiAvZCAiVU5JQ09ERSIgL2QgIl9VTklDT0RFIiAvZCAiJChDZVBsYXRmb3JtKSIgL2QgIkFSTSIgL2QgIl9BUk1fIiAvZCAiQVJNVjQiIC9kICJfQUZYRExMIiAvcg0KK0NQUD1jbGFybS5leGUNCisjIEFERCBCQVNFIENQUCAvbm9sb2dvIC9XMyAvRCAiQVJNIiAvRCAiX0FSTV8iIC9EICJBUk1WNCIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENlUGxhdGZvcm0pIiAvRCAiVU5JQ09ERSIgL0QgIl9VTklDT0RFIiAvRCAiTkRFQlVHIiAvRCAiX0FGWERMTCIgL1l1InN0ZGFmeC5oIiAvTzIgL00kKENFQ3J0TVQpIC9jDQorIyBBREQgQ1BQIC9ub2xvZ28gL1czIC9JICIuLi8uLi8uLi9wamxpYi9pbmNsdWRlIiAvSSAiLi4vLi4vLi4vcGpsaWItdXRpbC9pbmNsdWRlIiAvSSAiLi4vLi4vLi4vcGpuYXRoL2luY2x1ZGUiIC9JICIuLi8uLi8uLi9wam1lZGlhL2luY2x1ZGUiIC9JICIuLi8uLi8uLi9wanNpcC9pbmNsdWRlIiAvRCAiQVJNIiAvRCAiX0FSTV8iIC9EICJBUk1WNCIgL0QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9EIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9EICIkKENlUGxhdGZvcm0pIiAvRCAiVU5JQ09ERSIgL0QgIl9VTklDT0RFIiAvRCAiTkRFQlVHIiAvRCAiX0FGWERMTCIgL1l1InN0ZGFmeC5oIiAvTzIgL00kKENFQ3J0TVQpIC9jDQorTVRMPW1pZGwuZXhlDQorIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyDQorIyBBREQgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMg0KK0JTQzMyPWJzY21ha2UuZXhlDQorIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvDQorIyBBREQgQlNDMzIgL25vbG9nbw0KK0xJTkszMj1saW5rLmV4ZQ0KKyMgQUREIEJBU0UgTElOSzMyIC9ub2xvZ28gL2Jhc2U6IjB4MDAwMTAwMDAiIC9zdGFjazoweDEwMDAwLDB4MTAwMCAvZW50cnk6IndXaW5NYWluQ1JUU3RhcnR1cCIgL3N1YnN5c3RlbTokKENFU3Vic3lzdGVtKSAvYWxpZ246IjQwOTYiIC9NQUNISU5FOkFSTQ0KKyMgQUREIExJTkszMiBjb21tY3RybC5saWIgY29yZWRsbC5saWIgd2luc29jay5saWIgd3MyLmxpYiBpcGhscGFwaS5saWIgL25vbG9nbyAvYmFzZToiMHgwMDAxMDAwMCIgL3N0YWNrOjB4MTAwMDAsMHgxMDAwIC9lbnRyeToid1dpbk1haW5DUlRTdGFydHVwIiAvc3Vic3lzdGVtOiQoQ0VTdWJzeXN0ZW0pIC9hbGlnbjoiNDA5NiIgL01BQ0hJTkU6QVJNDQorDQorIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gIlBvY2tldFBKIC0gV2luMzIgKFdDRSBBUk1WNCkgRGVidWciDQorDQorIyBQUk9QIEJBU0UgVXNlX01GQyAyDQorIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAxDQorIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiQVJNVjREYmciDQorIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiQVJNVjREYmciDQorIyBQUk9QIEJBU0UgQ1BVX0lEICJ7RUNCRUE0M0QtQ0Q3Qi00ODUyLUFENTUtRDQyMjdCNUQ2MjRCfSINCisjIFBST1AgQkFTRSBQbGF0Zm9ybV9JRCAiezhBOUEyRjgwLTY4ODctMTFEMy04NDJFLTAwNTAwNDg0OENCQX0iDQorIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIg0KKyMgUFJPUCBVc2VfTUZDIDINCisjIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAxDQorIyBQUk9QIE91dHB1dF9EaXIgIkFSTVY0RGJnIg0KKyMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJBUk1WNERiZyINCisjIFBST1AgQ1BVX0lEICJ7RUNCRUE0M0QtQ0Q3Qi00ODUyLUFENTUtRDQyMjdCNUQ2MjRCfSINCisjIFBST1AgUGxhdGZvcm1fSUQgIns4QTlBMkY4MC02ODg3LTExRDMtODQyRS0wMDUwMDQ4NDhDQkF9Ig0KKyMgUFJPUCBJZ25vcmVfRXhwb3J0X0xpYiAwDQorIyBQUk9QIFRhcmdldF9EaXIgIiINCitSU0M9cmMuZXhlDQorIyBBREQgQkFTRSBSU0MgL2wgMHg0MDkgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICJERUJVRyIgL2QgIlVOSUNPREUiIC9kICJfVU5JQ09ERSIgL2QgIiQoQ2VQbGF0Zm9ybSkiIC9kICJBUk0iIC9kICJfQVJNXyIgL2QgIkFSTVY0IiAvZCAiX0FGWERMTCIgL3INCisjIEFERCBSU0MgL2wgMHg0MDkgL2QgVU5ERVJfQ0U9JChDRVZlcnNpb24pIC9kIF9XSU4zMl9XQ0U9JChDRVZlcnNpb24pIC9kICJERUJVRyIgL2QgIlVOSUNPREUiIC9kICJfVU5JQ09ERSIgL2QgIiQoQ2VQbGF0Zm9ybSkiIC9kICJBUk0iIC9kICJfQVJNXyIgL2QgIkFSTVY0IiAvZCAiX0FGWERMTCIgL3INCitDUFA9Y2xhcm0uZXhlDQorIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvVzMgL1ppIC9PZCAvRCAiREVCVUciIC9EICJBUk0iIC9EICJfQVJNXyIgL0QgIkFSTVY0IiAvRCBVTkRFUl9DRT0kKENFVmVyc2lvbikgL0QgX1dJTjMyX1dDRT0kKENFVmVyc2lvbikgL0QgIiQoQ2VQbGF0Zm9ybSkiIC9EICJVTklDT0RFIiAvRCAiX1VOSUNPREUiIC9EICJfQUZYRExMIiAvWXUic3RkYWZ4LmgiIC9NJChDRUNydE1URGVidWcpIC9jDQorIyBBREQgQ1BQIC9ub2xvZ28gL1czIC9aaSAvT2QgL0kgIi4uLy4uLy4uL3BqbGliL2luY2x1ZGUiIC9JICIuLi8uLi8uLi9wamxpYi11dGlsL2luY2x1ZGUiIC9JICIuLi8uLi8uLi9wam5hdGgvaW5jbHVkZSIgL0kgIi4uLy4uLy4uL3BqbWVkaWEvaW5jbHVkZSIgL0kgIi4uLy4uLy4uL3Bqc2lwL2luY2x1ZGUiIC9EICJERUJVRyIgL0QgIkFSTSIgL0QgIl9BUk1fIiAvRCAiQVJNVjQiIC9EIFVOREVSX0NFPSQoQ0VWZXJzaW9uKSAvRCBfV0lOMzJfV0NFPSQoQ0VWZXJzaW9uKSAvRCAiJChDZVBsYXRmb3JtKSIgL0QgIlVOSUNPREUiIC9EICJfVU5JQ09ERSIgL0QgIl9BRlhETEwiIC9GUiAvWXUic3RkYWZ4LmgiIC9NJChDRUNydE1URGVidWcpIC9jDQorTVRMPW1pZGwuZXhlDQorIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyDQorIyBBREQgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMg0KK0JTQzMyPWJzY21ha2UuZXhlDQorIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvDQorIyBBREQgQlNDMzIgL25vbG9nbw0KK0xJTkszMj1saW5rLmV4ZQ0KKyMgQUREIEJBU0UgTElOSzMyIC9ub2xvZ28gL2Jhc2U6IjB4MDAwMTAwMDAiIC9zdGFjazoweDEwMDAwLDB4MTAwMCAvZW50cnk6IndXaW5NYWluQ1JUU3RhcnR1cCIgL2RlYnVnIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL2FsaWduOiI0MDk2IiAvTUFDSElORTpBUk0NCisjIEFERCBMSU5LMzIgY29tbWN0cmwubGliIGNvcmVkbGwubGliIHdpbnNvY2subGliIHdzMi5saWIgaXBobHBhcGkubGliIC9ub2xvZ28gL2Jhc2U6IjB4MDAwMTAwMDAiIC9zdGFjazoweDEwMDAwLDB4MTAwMCAvZW50cnk6IndXaW5NYWluQ1JUU3RhcnR1cCIgL2RlYnVnIC9zdWJzeXN0ZW06JChDRVN1YnN5c3RlbSkgL2FsaWduOiI0MDk2IiAvTUFDSElORTpBUk0NCisNCishRU5ESUYgDQorDQorIyBCZWdpbiBUYXJnZXQNCisNCisjIE5hbWUgIlBvY2tldFBKIC0gV2luMzIgKFdDRSBlbXVsYXRvcikgUmVsZWFzZSINCisjIE5hbWUgIlBvY2tldFBKIC0gV2luMzIgKFdDRSBlbXVsYXRvcikgRGVidWciDQorIyBOYW1lICJQb2NrZXRQSiAtIFdpbjMyIChXQ0UgQVJNVjQpIFJlbGVhc2UiDQorIyBOYW1lICJQb2NrZXRQSiAtIFdpbjMyIChXQ0UgQVJNVjQpIERlYnVnIg0KKyMgQmVnaW4gR3JvdXAgIlNvdXJjZSBGaWxlcyINCisNCisjIFBST1AgRGVmYXVsdF9GaWx0ZXIgImNwcDtjO2N4eDtyYztkZWY7cjtvZGw7aWRsO2hwajtiYXQiDQorIyBCZWdpbiBTb3VyY2UgRmlsZQ0KKw0KK1NPVVJDRT0uXFBvY2tldFBKLmNwcA0KKw0KKyFJRiAgIiQoQ0ZHKSIgPT0gIlBvY2tldFBKIC0gV2luMzIgKFdDRSBlbXVsYXRvcikgUmVsZWFzZSINCisNCitERVBfQ1BQX1BPQ0tFPVwNCisJIi5cUG9ja2V0UEouaCJcDQorCSIuXFBvY2tldFBKRGxnLmgiXA0KKwkiLlxTdGRBZnguaCJcDQorCQ0KKw0KKyFFTFNFSUYgICIkKENGRykiID09ICJQb2NrZXRQSiAtIFdpbjMyIChXQ0UgZW11bGF0b3IpIERlYnVnIg0KKw0KK0RFUF9DUFBfUE9DS0U9XA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWwuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxiYXNlNjQuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxjb25maWcuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxjcmMzMi5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXGRucy5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXGVycm5vLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcZ2V0b3B0LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcaG1hY19tZDUuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxobWFjX3NoYTEuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxtZDUuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxwY2FwLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxccmVzb2x2ZXIuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxzY2FubmVyLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcc2Nhbm5lcl9jaXNfYml0d2lzZS5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXHNjYW5uZXJfY2lzX3VpbnQuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxzaGExLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcc3J2X3Jlc29sdmVyLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcc3R1bl9zaW1wbGUuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFx0eXBlcy5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXHhtbC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcYWRkcl9yZXNvbHYuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGFycmF5LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxhc3NlcnQuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxhc3NlcnQuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxjY19hcm1jYy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XGNjX2NvZGV3LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcY2NfZ2NjLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcY2NfZ2NjZS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XGNjX21zdmMuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxjY19td2NjLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcY3R5cGUuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxlcnJuby5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XGhpZ2hfcHJlY2lzaW9uLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcbV9hdXRvLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcb3NfYXV0by5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG9zX2Rhcndpbm9zLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcb3NfbGludXguaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxvc19saW51eF9rZXJuZWwuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxvc19wYWxtb3MuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxvc19ydGVtcy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG9zX3N1bm9zLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcb3Nfc3ltYmlhbi5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG9zX3dpbjMyLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcb3Nfd2luMzJfd2luY2UuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxzZXRqbXAuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxzaXplX3QuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxzdGRhcmcuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxzdHJpbmcuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbmZpZy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29uZmlnX3NpdGUuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbmZpZ19zaXRlX3NhbXBsZS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY3R5cGUuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGVycm5vLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxleGNlcHQuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGZpZm9idWYuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGZpbGVfYWNjZXNzLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxmaWxlX2lvLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxndWlkLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxoYXNoLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxpb3F1ZXVlLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxpcF9oZWxwZXIuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGxpc3QuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGxpc3RfaS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcbG9jay5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcbG9nLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxvcy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpccG9vbC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpccG9vbF9hbHQuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHBvb2xfYnVmLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxwb29sX2kuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHJhbmQuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHJidHJlZS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcc29jay5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcc29ja19zZWxlY3QuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHN0cmluZy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcc3RyaW5nX2kuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHRpbWVyLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalx0eXBlcy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcdW5pY29kZS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpsaWIuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYS1jb2RlYy5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhLWNvZGVjXGNvbmZpZy5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhLWNvZGVjXGNvbmZpZ19hdXRvLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWEtY29kZWNcZ3NtLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWEtY29kZWNcaWxiYy5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhLWNvZGVjXGwxNi5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhLWNvZGVjXHNwZWV4LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWEtY29kZWNcdHlwZXMuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYS5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGFsYXdfdWxhdy5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGJpZGlyZWN0aW9uYWwuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxjbG9jay5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGNvZGVjLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcY29uZmVyZW5jZS5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGNvbmZpZy5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGNvbmZpZ19hdXRvLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcZWNoby5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGVjaG9fcG9ydC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGVuZHBvaW50LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcZXJybm8uaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxnNzExLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcamJ1Zi5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXG1hc3Rlcl9wb3J0LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcbWVtX3BvcnQuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxudWxsX3BvcnQuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxwbGMuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxwb3J0LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFccmVzYW1wbGUuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxydGNwLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFccnRwLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcc2RwLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcc2RwX25lZy5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHNlc3Npb24uaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxzaWxlbmNlZGV0LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcc291bmQuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxzb3VuZF9wb3J0LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcc3BsaXRjb21iLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcc3RyZWFtLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcdG9uZWdlbi5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHRyYW5zcG9ydC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHRyYW5zcG9ydF9pY2UuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVx0cmFuc3BvcnRfc3J0cC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHRyYW5zcG9ydF91ZHAuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVx0eXBlcy5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHdhdl9wbGF5bGlzdC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHdhdl9wb3J0LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcd2F2ZS5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aC5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFxjb25maWcuaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcZXJybm8uaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcaWNlX3Nlc3Npb24uaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcaWNlX3N0cmFucy5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFxuYXRfZGV0ZWN0LmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoXHN0dW5fYXV0aC5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFxzdHVuX2NvbmZpZy5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFxzdHVuX21zZy5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFxzdHVuX3Nlc3Npb24uaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcc3R1bl90cmFuc2FjdGlvbi5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFx0eXBlcy5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtc2ltcGxlXGV2c3ViLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC1zaW1wbGVcaXNjb21wb3NpbmcuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXNpbXBsZVxwaWRmLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC1zaW1wbGVccHJlc2VuY2UuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXNpbXBsZVxwdWJsaXNoLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC1zaW1wbGVccnBpZC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtc2ltcGxlXHR5cGVzLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC1zaW1wbGVceHBpZGYuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXVhXHNpcF8xMDByZWwuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXVhXHNpcF9pbnYuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXVhXHNpcF9yZWdjLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC11YVxzaXBfcmVwbGFjZXMuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXVhXHNpcF94ZmVyLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX2F1dGguaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9hdXRoX2FrYS5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX2F1dGhfbXNnLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfYXV0b2NvbmYuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9jb25maWcuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9kaWFsb2cuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9lbmRwb2ludC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX2Vycm5vLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfZXZlbnQuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9tb2R1bGUuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9tc2cuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9wYXJzZXIuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9yZXNvbHZlLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdGVsX3VyaS5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3RyYW5zYWN0aW9uLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdHJhbnNwb3J0LmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdHJhbnNwb3J0X2xvb3AuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF90cmFuc3BvcnRfdGNwLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdHJhbnNwb3J0X3Rscy5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3RyYW5zcG9ydF91ZHAuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF90eXBlcy5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3VhX2xheWVyLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdXJpLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdXRpbC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBfc2ltcGxlLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcF91YS5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzdWEtbGliXHBqc3VhLmgiXA0KKwkiLlxQb2NrZXRQSi5oIlwNCisJIi5cUG9ja2V0UEpEbGcuaCJcDQorCSIuXFBvcFVwV25kLmgiXA0KKwkiLlxTZXR0aW5nc0RsZy5oIlwNCisJIi5cU3RkQWZ4LmgiXA0KKwkNCisNCishRUxTRUlGICAiJChDRkcpIiA9PSAiUG9ja2V0UEogLSBXaW4zMiAoV0NFIEFSTVY0KSBSZWxlYXNlIg0KKw0KK0RFUF9DUFBfUE9DS0U9XA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWwuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxiYXNlNjQuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxjb25maWcuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxjcmMzMi5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXGRucy5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXGVycm5vLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcZ2V0b3B0LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcaG1hY19tZDUuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxobWFjX3NoYTEuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxtZDUuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxwY2FwLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxccmVzb2x2ZXIuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxzY2FubmVyLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcc2Nhbm5lcl9jaXNfYml0d2lzZS5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXHNjYW5uZXJfY2lzX3VpbnQuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxzaGExLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcc3J2X3Jlc29sdmVyLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcc3R1bl9zaW1wbGUuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFx0eXBlcy5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXHhtbC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcYWRkcl9yZXNvbHYuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGFycmF5LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxhc3NlcnQuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxhc3NlcnQuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxjY19hcm1jYy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XGNjX2NvZGV3LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcY2NfZ2NjLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcY2NfZ2NjZS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XGNjX21zdmMuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxjY19td2NjLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcY3R5cGUuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxlcnJuby5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XGhpZ2hfcHJlY2lzaW9uLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcbV9hdXRvLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcb3NfYXV0by5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG9zX2Rhcndpbm9zLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcb3NfbGludXguaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxvc19saW51eF9rZXJuZWwuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxvc19wYWxtb3MuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxvc19ydGVtcy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG9zX3N1bm9zLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcb3Nfc3ltYmlhbi5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG9zX3dpbjMyLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcb3Nfd2luMzJfd2luY2UuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxzZXRqbXAuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxzaXplX3QuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxzdGRhcmcuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxzdHJpbmcuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbmZpZy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29uZmlnX3NpdGUuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbmZpZ19zaXRlX3NhbXBsZS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY3R5cGUuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGVycm5vLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxleGNlcHQuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGZpZm9idWYuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGZpbGVfYWNjZXNzLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxmaWxlX2lvLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxndWlkLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxoYXNoLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxpb3F1ZXVlLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxpcF9oZWxwZXIuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGxpc3QuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGxpc3RfaS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcbG9jay5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcbG9nLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxvcy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpccG9vbC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpccG9vbF9hbHQuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHBvb2xfYnVmLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxwb29sX2kuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHJhbmQuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHJidHJlZS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcc29jay5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcc29ja19zZWxlY3QuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHN0cmluZy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcc3RyaW5nX2kuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHRpbWVyLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalx0eXBlcy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcdW5pY29kZS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpsaWIuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYS1jb2RlYy5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhLWNvZGVjXGNvbmZpZy5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhLWNvZGVjXGNvbmZpZ19hdXRvLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWEtY29kZWNcZ3NtLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWEtY29kZWNcaWxiYy5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhLWNvZGVjXGwxNi5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhLWNvZGVjXHNwZWV4LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWEtY29kZWNcdHlwZXMuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYS5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGFsYXdfdWxhdy5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGJpZGlyZWN0aW9uYWwuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxjbG9jay5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGNvZGVjLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcY29uZmVyZW5jZS5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGNvbmZpZy5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGNvbmZpZ19hdXRvLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcZWNoby5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGVjaG9fcG9ydC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGVuZHBvaW50LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcZXJybm8uaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxnNzExLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcamJ1Zi5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXG1hc3Rlcl9wb3J0LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcbWVtX3BvcnQuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxudWxsX3BvcnQuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxwbGMuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxwb3J0LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFccmVzYW1wbGUuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxydGNwLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFccnRwLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcc2RwLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcc2RwX25lZy5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHNlc3Npb24uaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxzaWxlbmNlZGV0LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcc291bmQuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxzb3VuZF9wb3J0LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcc3BsaXRjb21iLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcc3RyZWFtLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcdG9uZWdlbi5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHRyYW5zcG9ydC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHRyYW5zcG9ydF9pY2UuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVx0cmFuc3BvcnRfc3J0cC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHRyYW5zcG9ydF91ZHAuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVx0eXBlcy5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHdhdl9wbGF5bGlzdC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHdhdl9wb3J0LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcd2F2ZS5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aC5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFxjb25maWcuaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcZXJybm8uaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcaWNlX3Nlc3Npb24uaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcaWNlX3N0cmFucy5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFxuYXRfZGV0ZWN0LmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoXHN0dW5fYXV0aC5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFxzdHVuX2NvbmZpZy5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFxzdHVuX21zZy5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFxzdHVuX3Nlc3Npb24uaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcc3R1bl90cmFuc2FjdGlvbi5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFx0eXBlcy5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtc2ltcGxlXGV2c3ViLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC1zaW1wbGVcaXNjb21wb3NpbmcuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXNpbXBsZVxwaWRmLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC1zaW1wbGVccHJlc2VuY2UuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXNpbXBsZVxwdWJsaXNoLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC1zaW1wbGVccnBpZC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtc2ltcGxlXHR5cGVzLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC1zaW1wbGVceHBpZGYuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXVhXHNpcF8xMDByZWwuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXVhXHNpcF9pbnYuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXVhXHNpcF9yZWdjLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC11YVxzaXBfcmVwbGFjZXMuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXVhXHNpcF94ZmVyLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX2F1dGguaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9hdXRoX2FrYS5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX2F1dGhfbXNnLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfYXV0b2NvbmYuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9jb25maWcuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9kaWFsb2cuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9lbmRwb2ludC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX2Vycm5vLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfZXZlbnQuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9tb2R1bGUuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9tc2cuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9wYXJzZXIuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9yZXNvbHZlLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdGVsX3VyaS5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3RyYW5zYWN0aW9uLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdHJhbnNwb3J0LmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdHJhbnNwb3J0X2xvb3AuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF90cmFuc3BvcnRfdGNwLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdHJhbnNwb3J0X3Rscy5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3RyYW5zcG9ydF91ZHAuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF90eXBlcy5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3VhX2xheWVyLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdXJpLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdXRpbC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBfc2ltcGxlLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcF91YS5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzdWEtbGliXHBqc3VhLmgiXA0KKwkiLlxQb2NrZXRQSi5oIlwNCisJIi5cUG9ja2V0UEpEbGcuaCJcDQorCSIuXFBvcFVwV25kLmgiXA0KKwkiLlxTZXR0aW5nc0RsZy5oIlwNCisJIi5cU3RkQWZ4LmgiXA0KKwkNCisNCishRUxTRUlGICAiJChDRkcpIiA9PSAiUG9ja2V0UEogLSBXaW4zMiAoV0NFIEFSTVY0KSBEZWJ1ZyINCisNCitERVBfQ1BQX1BPQ0tFPVwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcYmFzZTY0LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcY29uZmlnLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcY3JjMzIuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxkbnMuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxlcnJuby5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXGdldG9wdC5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXGhtYWNfbWQ1LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcaG1hY19zaGExLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcbWQ1LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxccGNhcC5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXHJlc29sdmVyLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcc2Nhbm5lci5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXHNjYW5uZXJfY2lzX2JpdHdpc2UuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxzY2FubmVyX2Npc191aW50LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcc2hhMS5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXHNydl9yZXNvbHZlci5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXHN0dW5fc2ltcGxlLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcdHlwZXMuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFx4bWwuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGFkZHJfcmVzb2x2LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxhcnJheS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcYXNzZXJ0LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcYXNzZXJ0LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcY2NfYXJtY2MuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxjY19jb2Rldy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XGNjX2djYy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XGNjX2djY2UuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxjY19tc3ZjLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcY2NfbXdjYy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XGN0eXBlLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcZXJybm8uaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxoaWdoX3ByZWNpc2lvbi5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG1fYXV0by5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG9zX2F1dG8uaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxvc19kYXJ3aW5vcy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG9zX2xpbnV4LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcb3NfbGludXhfa2VybmVsLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcb3NfcGFsbW9zLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcb3NfcnRlbXMuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxvc19zdW5vcy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG9zX3N5bWJpYW4uaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxvc193aW4zMi5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG9zX3dpbjMyX3dpbmNlLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcc2V0am1wLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcc2l6ZV90LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcc3RkYXJnLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcc3RyaW5nLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb25maWcuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbmZpZ19zaXRlLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb25maWdfc2l0ZV9zYW1wbGUuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGN0eXBlLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxlcnJuby5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcZXhjZXB0LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxmaWZvYnVmLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxmaWxlX2FjY2Vzcy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcZmlsZV9pby5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcZ3VpZC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcaGFzaC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcaW9xdWV1ZS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcaXBfaGVscGVyLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxsaXN0LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxsaXN0X2kuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGxvY2suaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGxvZy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcb3MuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHBvb2wuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHBvb2xfYWx0LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxwb29sX2J1Zi5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpccG9vbF9pLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxyYW5kLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxyYnRyZWUuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHNvY2suaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHNvY2tfc2VsZWN0LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxzdHJpbmcuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHN0cmluZ19pLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalx0aW1lci5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcdHlwZXMuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHVuaWNvZGUuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqbGliLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWEtY29kZWMuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYS1jb2RlY1xjb25maWcuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYS1jb2RlY1xjb25maWdfYXV0by5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhLWNvZGVjXGdzbS5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhLWNvZGVjXGlsYmMuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYS1jb2RlY1xsMTYuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYS1jb2RlY1xzcGVleC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhLWNvZGVjXHR5cGVzLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWEuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxhbGF3X3VsYXcuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxiaWRpcmVjdGlvbmFsLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcY2xvY2suaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxjb2RlYy5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGNvbmZlcmVuY2UuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxjb25maWcuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxjb25maWdfYXV0by5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGVjaG8uaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxlY2hvX3BvcnQuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxlbmRwb2ludC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGVycm5vLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcZzcxMS5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGpidWYuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxtYXN0ZXJfcG9ydC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXG1lbV9wb3J0LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcbnVsbF9wb3J0LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFccGxjLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFccG9ydC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHJlc2FtcGxlLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFccnRjcC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHJ0cC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHNkcC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHNkcF9uZWcuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxzZXNzaW9uLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcc2lsZW5jZWRldC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHNvdW5kLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcc291bmRfcG9ydC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHNwbGl0Y29tYi5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHN0cmVhbS5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHRvbmVnZW4uaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVx0cmFuc3BvcnQuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVx0cmFuc3BvcnRfaWNlLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcdHJhbnNwb3J0X3NydHAuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVx0cmFuc3BvcnRfdWRwLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcdHlwZXMuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVx3YXZfcGxheWxpc3QuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVx3YXZfcG9ydC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHdhdmUuaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGguaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcY29uZmlnLmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoXGVycm5vLmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoXGljZV9zZXNzaW9uLmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoXGljZV9zdHJhbnMuaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcbmF0X2RldGVjdC5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFxzdHVuX2F1dGguaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcc3R1bl9jb25maWcuaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcc3R1bl9tc2cuaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcc3R1bl9zZXNzaW9uLmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoXHN0dW5fdHJhbnNhY3Rpb24uaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcdHlwZXMuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXNpbXBsZVxldnN1Yi5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtc2ltcGxlXGlzY29tcG9zaW5nLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC1zaW1wbGVccGlkZi5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtc2ltcGxlXHByZXNlbmNlLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC1zaW1wbGVccHVibGlzaC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtc2ltcGxlXHJwaWQuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXNpbXBsZVx0eXBlcy5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtc2ltcGxlXHhwaWRmLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC11YVxzaXBfMTAwcmVsLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC11YVxzaXBfaW52LmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC11YVxzaXBfcmVnYy5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtdWFcc2lwX3JlcGxhY2VzLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC11YVxzaXBfeGZlci5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9hdXRoLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfYXV0aF9ha2EuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9hdXRoX21zZy5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX2F1dG9jb25mLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfY29uZmlnLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfZGlhbG9nLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfZW5kcG9pbnQuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9lcnJuby5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX2V2ZW50LmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfbW9kdWxlLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfbXNnLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfcGFyc2VyLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfcmVzb2x2ZS5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3RlbF91cmkuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF90cmFuc2FjdGlvbi5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3RyYW5zcG9ydC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3RyYW5zcG9ydF9sb29wLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdHJhbnNwb3J0X3RjcC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3RyYW5zcG9ydF90bHMuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF90cmFuc3BvcnRfdWRwLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdHlwZXMuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF91YV9sYXllci5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3VyaS5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3V0aWwuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwX3NpbXBsZS5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBfdWEuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc3VhLWxpYlxwanN1YS5oIlwNCisJIi5cUG9ja2V0UEouaCJcDQorCSIuXFBvY2tldFBKRGxnLmgiXA0KKwkiLlxTZXR0aW5nc0RsZy5oIlwNCisJIi5cU3RkQWZ4LmgiXA0KKwkNCisNCishRU5ESUYgDQorDQorIyBFbmQgU291cmNlIEZpbGUNCisjIEJlZ2luIFNvdXJjZSBGaWxlDQorDQorU09VUkNFPS5cUG9ja2V0UEoucmMNCisNCishSUYgICIkKENGRykiID09ICJQb2NrZXRQSiAtIFdpbjMyIChXQ0UgZW11bGF0b3IpIFJlbGVhc2UiDQorDQorIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gIlBvY2tldFBKIC0gV2luMzIgKFdDRSBlbXVsYXRvcikgRGVidWciDQorDQorIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gIlBvY2tldFBKIC0gV2luMzIgKFdDRSBBUk1WNCkgUmVsZWFzZSINCisNCishRUxTRUlGICAiJChDRkcpIiA9PSAiUG9ja2V0UEogLSBXaW4zMiAoV0NFIEFSTVY0KSBEZWJ1ZyINCisNCishRU5ESUYgDQorDQorIyBFbmQgU291cmNlIEZpbGUNCisjIEJlZ2luIFNvdXJjZSBGaWxlDQorDQorU09VUkNFPS5cUG9ja2V0UEpEbGcuY3BwDQorDQorIUlGICAiJChDRkcpIiA9PSAiUG9ja2V0UEogLSBXaW4zMiAoV0NFIGVtdWxhdG9yKSBSZWxlYXNlIg0KKw0KK0RFUF9DUFBfUE9DS0VUPVwNCisJIi5cUG9ja2V0UEouaCJcDQorCSIuXFBvY2tldFBKRGxnLmgiXA0KKwkiLlxTdGRBZnguaCJcDQorCQ0KKw0KKyFFTFNFSUYgICIkKENGRykiID09ICJQb2NrZXRQSiAtIFdpbjMyIChXQ0UgZW11bGF0b3IpIERlYnVnIg0KKw0KK0RFUF9DUFBfUE9DS0VUPVwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcYmFzZTY0LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcY29uZmlnLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcY3JjMzIuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxkbnMuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxlcnJuby5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXGdldG9wdC5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXGhtYWNfbWQ1LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcaG1hY19zaGExLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcbWQ1LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxccGNhcC5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXHJlc29sdmVyLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcc2Nhbm5lci5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXHNjYW5uZXJfY2lzX2JpdHdpc2UuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxzY2FubmVyX2Npc191aW50LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcc2hhMS5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXHNydl9yZXNvbHZlci5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXHN0dW5fc2ltcGxlLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcdHlwZXMuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFx4bWwuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGFkZHJfcmVzb2x2LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxhcnJheS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcYXNzZXJ0LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcYXNzZXJ0LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcY2NfYXJtY2MuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxjY19jb2Rldy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XGNjX2djYy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XGNjX2djY2UuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxjY19tc3ZjLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcY2NfbXdjYy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XGN0eXBlLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcZXJybm8uaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxoaWdoX3ByZWNpc2lvbi5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG1fYXV0by5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG9zX2F1dG8uaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxvc19kYXJ3aW5vcy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG9zX2xpbnV4LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcb3NfbGludXhfa2VybmVsLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcb3NfcGFsbW9zLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcb3NfcnRlbXMuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxvc19zdW5vcy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG9zX3N5bWJpYW4uaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxvc193aW4zMi5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG9zX3dpbjMyX3dpbmNlLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcc2V0am1wLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcc2l6ZV90LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcc3RkYXJnLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcc3RyaW5nLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb25maWcuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbmZpZ19zaXRlLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb25maWdfc2l0ZV9zYW1wbGUuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGN0eXBlLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxlcnJuby5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcZXhjZXB0LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxmaWZvYnVmLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxmaWxlX2FjY2Vzcy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcZmlsZV9pby5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcZ3VpZC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcaGFzaC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcaW9xdWV1ZS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcaXBfaGVscGVyLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxsaXN0LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxsaXN0X2kuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGxvY2suaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGxvZy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcb3MuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHBvb2wuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHBvb2xfYWx0LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxwb29sX2J1Zi5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpccG9vbF9pLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxyYW5kLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxyYnRyZWUuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHNvY2suaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHNvY2tfc2VsZWN0LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxzdHJpbmcuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHN0cmluZ19pLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalx0aW1lci5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcdHlwZXMuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHVuaWNvZGUuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqbGliLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWEtY29kZWMuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYS1jb2RlY1xjb25maWcuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYS1jb2RlY1xjb25maWdfYXV0by5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhLWNvZGVjXGdzbS5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhLWNvZGVjXGlsYmMuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYS1jb2RlY1xsMTYuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYS1jb2RlY1xzcGVleC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhLWNvZGVjXHR5cGVzLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWEuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxhbGF3X3VsYXcuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxiaWRpcmVjdGlvbmFsLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcY2xvY2suaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxjb2RlYy5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGNvbmZlcmVuY2UuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxjb25maWcuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxjb25maWdfYXV0by5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGVjaG8uaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxlY2hvX3BvcnQuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxlbmRwb2ludC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGVycm5vLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcZzcxMS5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGpidWYuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxtYXN0ZXJfcG9ydC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXG1lbV9wb3J0LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcbnVsbF9wb3J0LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFccGxjLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFccG9ydC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHJlc2FtcGxlLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFccnRjcC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHJ0cC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHNkcC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHNkcF9uZWcuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxzZXNzaW9uLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcc2lsZW5jZWRldC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHNvdW5kLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcc291bmRfcG9ydC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHNwbGl0Y29tYi5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHN0cmVhbS5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHRvbmVnZW4uaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVx0cmFuc3BvcnQuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVx0cmFuc3BvcnRfaWNlLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcdHJhbnNwb3J0X3NydHAuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVx0cmFuc3BvcnRfdWRwLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcdHlwZXMuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVx3YXZfcGxheWxpc3QuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVx3YXZfcG9ydC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHdhdmUuaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGguaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcY29uZmlnLmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoXGVycm5vLmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoXGljZV9zZXNzaW9uLmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoXGljZV9zdHJhbnMuaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcbmF0X2RldGVjdC5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFxzdHVuX2F1dGguaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcc3R1bl9jb25maWcuaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcc3R1bl9tc2cuaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcc3R1bl9zZXNzaW9uLmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoXHN0dW5fdHJhbnNhY3Rpb24uaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcdHlwZXMuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXNpbXBsZVxldnN1Yi5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtc2ltcGxlXGlzY29tcG9zaW5nLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC1zaW1wbGVccGlkZi5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtc2ltcGxlXHByZXNlbmNlLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC1zaW1wbGVccHVibGlzaC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtc2ltcGxlXHJwaWQuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXNpbXBsZVx0eXBlcy5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtc2ltcGxlXHhwaWRmLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC11YVxzaXBfMTAwcmVsLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC11YVxzaXBfaW52LmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC11YVxzaXBfcmVnYy5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtdWFcc2lwX3JlcGxhY2VzLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC11YVxzaXBfeGZlci5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9hdXRoLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfYXV0aF9ha2EuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9hdXRoX21zZy5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX2F1dG9jb25mLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfY29uZmlnLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfZGlhbG9nLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfZW5kcG9pbnQuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9lcnJuby5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX2V2ZW50LmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfbW9kdWxlLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfbXNnLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfcGFyc2VyLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfcmVzb2x2ZS5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3RlbF91cmkuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF90cmFuc2FjdGlvbi5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3RyYW5zcG9ydC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3RyYW5zcG9ydF9sb29wLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdHJhbnNwb3J0X3RjcC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3RyYW5zcG9ydF90bHMuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF90cmFuc3BvcnRfdWRwLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdHlwZXMuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF91YV9sYXllci5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3VyaS5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3V0aWwuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwX3NpbXBsZS5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBfdWEuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc3VhLWxpYlxwanN1YS5oIlwNCisJIi5cUG9ja2V0UEouaCJcDQorCSIuXFBvY2tldFBKRGxnLmgiXA0KKwkiLlxQb3BVcFduZC5oIlwNCisJIi5cU2V0dGluZ3NEbGcuaCJcDQorCSIuXFN0ZEFmeC5oIlwNCisJeyQoSU5DTFVERSl9ImlwZXhwb3J0LmgiXA0KKwl7JChJTkNMVURFKX0iSXBobHBhcGkuaCJcDQorCXskKElOQ0xVREUpfSJpcHR5cGVzLmgiXA0KKwkNCisNCishRUxTRUlGICAiJChDRkcpIiA9PSAiUG9ja2V0UEogLSBXaW4zMiAoV0NFIEFSTVY0KSBSZWxlYXNlIg0KKw0KK0RFUF9DUFBfUE9DS0VUPVwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcYmFzZTY0LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcY29uZmlnLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcY3JjMzIuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxkbnMuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxlcnJuby5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXGdldG9wdC5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXGhtYWNfbWQ1LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcaG1hY19zaGExLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcbWQ1LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxccGNhcC5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXHJlc29sdmVyLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcc2Nhbm5lci5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXHNjYW5uZXJfY2lzX2JpdHdpc2UuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxzY2FubmVyX2Npc191aW50LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcc2hhMS5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXHNydl9yZXNvbHZlci5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXHN0dW5fc2ltcGxlLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcdHlwZXMuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFx4bWwuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGFkZHJfcmVzb2x2LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxhcnJheS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcYXNzZXJ0LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcYXNzZXJ0LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcY2NfYXJtY2MuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxjY19jb2Rldy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XGNjX2djYy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XGNjX2djY2UuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxjY19tc3ZjLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcY2NfbXdjYy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XGN0eXBlLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcZXJybm8uaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxoaWdoX3ByZWNpc2lvbi5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG1fYXV0by5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG9zX2F1dG8uaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxvc19kYXJ3aW5vcy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG9zX2xpbnV4LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcb3NfbGludXhfa2VybmVsLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcb3NfcGFsbW9zLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcb3NfcnRlbXMuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxvc19zdW5vcy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG9zX3N5bWJpYW4uaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxvc193aW4zMi5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG9zX3dpbjMyX3dpbmNlLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcc2V0am1wLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcc2l6ZV90LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcc3RkYXJnLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcc3RyaW5nLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb25maWcuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbmZpZ19zaXRlLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb25maWdfc2l0ZV9zYW1wbGUuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGN0eXBlLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxlcnJuby5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcZXhjZXB0LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxmaWZvYnVmLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxmaWxlX2FjY2Vzcy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcZmlsZV9pby5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcZ3VpZC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcaGFzaC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcaW9xdWV1ZS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcaXBfaGVscGVyLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxsaXN0LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxsaXN0X2kuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGxvY2suaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGxvZy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcb3MuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHBvb2wuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHBvb2xfYWx0LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxwb29sX2J1Zi5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpccG9vbF9pLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxyYW5kLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxyYnRyZWUuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHNvY2suaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHNvY2tfc2VsZWN0LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxzdHJpbmcuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHN0cmluZ19pLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalx0aW1lci5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcdHlwZXMuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHVuaWNvZGUuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqbGliLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWEtY29kZWMuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYS1jb2RlY1xjb25maWcuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYS1jb2RlY1xjb25maWdfYXV0by5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhLWNvZGVjXGdzbS5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhLWNvZGVjXGlsYmMuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYS1jb2RlY1xsMTYuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYS1jb2RlY1xzcGVleC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhLWNvZGVjXHR5cGVzLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWEuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxhbGF3X3VsYXcuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxiaWRpcmVjdGlvbmFsLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcY2xvY2suaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxjb2RlYy5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGNvbmZlcmVuY2UuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxjb25maWcuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxjb25maWdfYXV0by5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGVjaG8uaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxlY2hvX3BvcnQuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxlbmRwb2ludC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGVycm5vLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcZzcxMS5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGpidWYuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxtYXN0ZXJfcG9ydC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXG1lbV9wb3J0LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcbnVsbF9wb3J0LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFccGxjLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFccG9ydC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHJlc2FtcGxlLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFccnRjcC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHJ0cC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHNkcC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHNkcF9uZWcuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxzZXNzaW9uLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcc2lsZW5jZWRldC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHNvdW5kLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcc291bmRfcG9ydC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHNwbGl0Y29tYi5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHN0cmVhbS5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHRvbmVnZW4uaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVx0cmFuc3BvcnQuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVx0cmFuc3BvcnRfaWNlLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcdHJhbnNwb3J0X3NydHAuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVx0cmFuc3BvcnRfdWRwLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcdHlwZXMuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVx3YXZfcGxheWxpc3QuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVx3YXZfcG9ydC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHdhdmUuaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGguaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcY29uZmlnLmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoXGVycm5vLmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoXGljZV9zZXNzaW9uLmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoXGljZV9zdHJhbnMuaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcbmF0X2RldGVjdC5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFxzdHVuX2F1dGguaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcc3R1bl9jb25maWcuaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcc3R1bl9tc2cuaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcc3R1bl9zZXNzaW9uLmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoXHN0dW5fdHJhbnNhY3Rpb24uaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcdHlwZXMuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXNpbXBsZVxldnN1Yi5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtc2ltcGxlXGlzY29tcG9zaW5nLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC1zaW1wbGVccGlkZi5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtc2ltcGxlXHByZXNlbmNlLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC1zaW1wbGVccHVibGlzaC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtc2ltcGxlXHJwaWQuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXNpbXBsZVx0eXBlcy5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtc2ltcGxlXHhwaWRmLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC11YVxzaXBfMTAwcmVsLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC11YVxzaXBfaW52LmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC11YVxzaXBfcmVnYy5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtdWFcc2lwX3JlcGxhY2VzLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC11YVxzaXBfeGZlci5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9hdXRoLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfYXV0aF9ha2EuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9hdXRoX21zZy5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX2F1dG9jb25mLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfY29uZmlnLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfZGlhbG9nLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfZW5kcG9pbnQuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9lcnJuby5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX2V2ZW50LmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfbW9kdWxlLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfbXNnLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfcGFyc2VyLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfcmVzb2x2ZS5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3RlbF91cmkuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF90cmFuc2FjdGlvbi5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3RyYW5zcG9ydC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3RyYW5zcG9ydF9sb29wLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdHJhbnNwb3J0X3RjcC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3RyYW5zcG9ydF90bHMuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF90cmFuc3BvcnRfdWRwLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdHlwZXMuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF91YV9sYXllci5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3VyaS5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3V0aWwuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwX3NpbXBsZS5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBfdWEuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc3VhLWxpYlxwanN1YS5oIlwNCisJIi5cUG9ja2V0UEouaCJcDQorCSIuXFBvY2tldFBKRGxnLmgiXA0KKwkiLlxQb3BVcFduZC5oIlwNCisJIi5cU2V0dGluZ3NEbGcuaCJcDQorCSIuXFN0ZEFmeC5oIlwNCisJeyQoSU5DTFVERSl9ImlwZXhwb3J0LmgiXA0KKwl7JChJTkNMVURFKX0iSXBobHBhcGkuaCJcDQorCXskKElOQ0xVREUpfSJpcHR5cGVzLmgiXA0KKwkNCisNCishRUxTRUlGICAiJChDRkcpIiA9PSAiUG9ja2V0UEogLSBXaW4zMiAoV0NFIEFSTVY0KSBEZWJ1ZyINCisNCitERVBfQ1BQX1BPQ0tFVD1cDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbC5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXGJhc2U2NC5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXGNvbmZpZy5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXGNyYzMyLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcZG5zLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcZXJybm8uaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxnZXRvcHQuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxobWFjX21kNS5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXGhtYWNfc2hhMS5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXG1kNS5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXHBjYXAuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxyZXNvbHZlci5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXHNjYW5uZXIuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxzY2FubmVyX2Npc19iaXR3aXNlLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcc2Nhbm5lcl9jaXNfdWludC5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXHNoYTEuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxzcnZfcmVzb2x2ZXIuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxzdHVuX3NpbXBsZS5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXHR5cGVzLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxceG1sLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxhZGRyX3Jlc29sdi5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcYXJyYXkuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGFzc2VydC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XGFzc2VydC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XGNjX2FybWNjLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcY2NfY29kZXcuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxjY19nY2MuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxjY19nY2NlLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcY2NfbXN2Yy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XGNjX213Y2MuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxjdHlwZS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XGVycm5vLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcaGlnaF9wcmVjaXNpb24uaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxtX2F1dG8uaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxvc19hdXRvLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcb3NfZGFyd2lub3MuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxvc19saW51eC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG9zX2xpbnV4X2tlcm5lbC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG9zX3BhbG1vcy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG9zX3J0ZW1zLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcb3Nfc3Vub3MuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxvc19zeW1iaWFuLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcb3Nfd2luMzIuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxvc193aW4zMl93aW5jZS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XHNldGptcC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XHNpemVfdC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XHN0ZGFyZy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XHN0cmluZy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29uZmlnLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb25maWdfc2l0ZS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29uZmlnX3NpdGVfc2FtcGxlLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjdHlwZS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcZXJybm8uaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGV4Y2VwdC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcZmlmb2J1Zi5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcZmlsZV9hY2Nlc3MuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGZpbGVfaW8uaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGd1aWQuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGhhc2guaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGlvcXVldWUuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGlwX2hlbHBlci5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcbGlzdC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcbGlzdF9pLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxsb2NrLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxsb2cuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXG9zLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxwb29sLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxwb29sX2FsdC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpccG9vbF9idWYuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHBvb2xfaS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpccmFuZC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpccmJ0cmVlLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxzb2NrLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxzb2NrX3NlbGVjdC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcc3RyaW5nLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxzdHJpbmdfaS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcdGltZXIuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHR5cGVzLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalx1bmljb2RlLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwamxpYi5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhLWNvZGVjLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWEtY29kZWNcY29uZmlnLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWEtY29kZWNcY29uZmlnX2F1dG8uaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYS1jb2RlY1xnc20uaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYS1jb2RlY1xpbGJjLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWEtY29kZWNcbDE2LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWEtY29kZWNcc3BlZXguaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYS1jb2RlY1x0eXBlcy5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcYWxhd191bGF3LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcYmlkaXJlY3Rpb25hbC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGNsb2NrLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcY29kZWMuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxjb25mZXJlbmNlLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcY29uZmlnLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcY29uZmlnX2F1dG8uaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxlY2hvLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcZWNob19wb3J0LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcZW5kcG9pbnQuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxlcnJuby5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGc3MTEuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxqYnVmLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcbWFzdGVyX3BvcnQuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxtZW1fcG9ydC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXG51bGxfcG9ydC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHBsYy5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHBvcnQuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxyZXNhbXBsZS5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHJ0Y3AuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxydHAuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxzZHAuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxzZHBfbmVnLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcc2Vzc2lvbi5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHNpbGVuY2VkZXQuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxzb3VuZC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHNvdW5kX3BvcnQuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxzcGxpdGNvbWIuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxzdHJlYW0uaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVx0b25lZ2VuLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcdHJhbnNwb3J0LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcdHJhbnNwb3J0X2ljZS5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHRyYW5zcG9ydF9zcnRwLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcdHJhbnNwb3J0X3VkcC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHR5cGVzLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcd2F2X3BsYXlsaXN0LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcd2F2X3BvcnQuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVx3YXZlLmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoLmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoXGNvbmZpZy5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFxlcnJuby5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFxpY2Vfc2Vzc2lvbi5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFxpY2Vfc3RyYW5zLmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoXG5hdF9kZXRlY3QuaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcc3R1bl9hdXRoLmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoXHN0dW5fY29uZmlnLmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoXHN0dW5fbXNnLmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoXHN0dW5fc2Vzc2lvbi5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFxzdHVuX3RyYW5zYWN0aW9uLmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoXHR5cGVzLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC1zaW1wbGVcZXZzdWIuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXNpbXBsZVxpc2NvbXBvc2luZy5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtc2ltcGxlXHBpZGYuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXNpbXBsZVxwcmVzZW5jZS5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtc2ltcGxlXHB1Ymxpc2guaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXNpbXBsZVxycGlkLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC1zaW1wbGVcdHlwZXMuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXNpbXBsZVx4cGlkZi5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtdWFcc2lwXzEwMHJlbC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtdWFcc2lwX2ludi5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtdWFcc2lwX3JlZ2MuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXVhXHNpcF9yZXBsYWNlcy5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtdWFcc2lwX3hmZXIuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfYXV0aC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX2F1dGhfYWthLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfYXV0aF9tc2cuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9hdXRvY29uZi5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX2NvbmZpZy5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX2RpYWxvZy5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX2VuZHBvaW50LmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfZXJybm8uaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9ldmVudC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX21vZHVsZS5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX21zZy5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3BhcnNlci5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3Jlc29sdmUuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF90ZWxfdXJpLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdHJhbnNhY3Rpb24uaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF90cmFuc3BvcnQuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF90cmFuc3BvcnRfbG9vcC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3RyYW5zcG9ydF90Y3AuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF90cmFuc3BvcnRfdGxzLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdHJhbnNwb3J0X3VkcC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3R5cGVzLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdWFfbGF5ZXIuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF91cmkuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF91dGlsLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcF9zaW1wbGUuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwX3VhLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanN1YS1saWJccGpzdWEuaCJcDQorCSIuXFBvY2tldFBKLmgiXA0KKwkiLlxQb2NrZXRQSkRsZy5oIlwNCisJIi5cUG9wVXBEbGcuaCJcDQorCSIuXFNldHRpbmdzRGxnLmgiXA0KKwkiLlxTdGRBZnguaCJcDQorCQ0KKw0KKyFFTkRJRiANCisNCisjIEVuZCBTb3VyY2UgRmlsZQ0KKyMgQmVnaW4gU291cmNlIEZpbGUNCisNCitTT1VSQ0U9LlxQb3BVcFduZC5jcHANCisNCishSUYgICIkKENGRykiID09ICJQb2NrZXRQSiAtIFdpbjMyIChXQ0UgZW11bGF0b3IpIFJlbGVhc2UiDQorDQorREVQX0NQUF9QT1BVUD1cDQorCSIuXFBvcFVwV25kLmgiXA0KKwkiLlxTdGRBZnguaCJcDQorCQ0KKw0KKyFFTFNFSUYgICIkKENGRykiID09ICJQb2NrZXRQSiAtIFdpbjMyIChXQ0UgZW11bGF0b3IpIERlYnVnIg0KKw0KK0RFUF9DUFBfUE9QVVA9XA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWwuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxiYXNlNjQuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxjb25maWcuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxjcmMzMi5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXGRucy5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXGVycm5vLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcZ2V0b3B0LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcaG1hY19tZDUuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxobWFjX3NoYTEuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxtZDUuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxwY2FwLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxccmVzb2x2ZXIuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxzY2FubmVyLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcc2Nhbm5lcl9jaXNfYml0d2lzZS5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXHNjYW5uZXJfY2lzX3VpbnQuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxzaGExLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcc3J2X3Jlc29sdmVyLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcc3R1bl9zaW1wbGUuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFx0eXBlcy5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXHhtbC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcYWRkcl9yZXNvbHYuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGFycmF5LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxhc3NlcnQuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxhc3NlcnQuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxjY19hcm1jYy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XGNjX2NvZGV3LmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcY2NfZ2NjLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcY2NfZ2NjZS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XGNjX21zdmMuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxjY19td2NjLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcY3R5cGUuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxlcnJuby5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XGhpZ2hfcHJlY2lzaW9uLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcbV9hdXRvLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcb3NfYXV0by5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG9zX2Rhcndpbm9zLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcb3NfbGludXguaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxvc19saW51eF9rZXJuZWwuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxvc19wYWxtb3MuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxvc19ydGVtcy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG9zX3N1bm9zLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcb3Nfc3ltYmlhbi5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG9zX3dpbjMyLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcb3Nfd2luMzJfd2luY2UuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxzZXRqbXAuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxzaXplX3QuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxzdGRhcmcuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxzdHJpbmcuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbmZpZy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29uZmlnX3NpdGUuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbmZpZ19zaXRlX3NhbXBsZS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY3R5cGUuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGVycm5vLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxleGNlcHQuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGZpZm9idWYuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGZpbGVfYWNjZXNzLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxmaWxlX2lvLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxndWlkLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxoYXNoLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxpb3F1ZXVlLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxpcF9oZWxwZXIuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGxpc3QuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGxpc3RfaS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcbG9jay5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcbG9nLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxvcy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpccG9vbC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpccG9vbF9hbHQuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHBvb2xfYnVmLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxwb29sX2kuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHJhbmQuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHJidHJlZS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcc29jay5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcc29ja19zZWxlY3QuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHN0cmluZy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcc3RyaW5nX2kuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHRpbWVyLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalx0eXBlcy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcdW5pY29kZS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpsaWIuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYS1jb2RlYy5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhLWNvZGVjXGNvbmZpZy5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhLWNvZGVjXGNvbmZpZ19hdXRvLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWEtY29kZWNcZ3NtLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWEtY29kZWNcaWxiYy5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhLWNvZGVjXGwxNi5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhLWNvZGVjXHNwZWV4LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWEtY29kZWNcdHlwZXMuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYS5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGFsYXdfdWxhdy5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGJpZGlyZWN0aW9uYWwuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxjbG9jay5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGNvZGVjLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcY29uZmVyZW5jZS5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGNvbmZpZy5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGNvbmZpZ19hdXRvLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcZWNoby5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGVjaG9fcG9ydC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGVuZHBvaW50LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcZXJybm8uaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxnNzExLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcamJ1Zi5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXG1hc3Rlcl9wb3J0LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcbWVtX3BvcnQuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxudWxsX3BvcnQuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxwbGMuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxwb3J0LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFccmVzYW1wbGUuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxydGNwLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFccnRwLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcc2RwLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcc2RwX25lZy5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHNlc3Npb24uaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxzaWxlbmNlZGV0LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcc291bmQuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxzb3VuZF9wb3J0LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcc3BsaXRjb21iLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcc3RyZWFtLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcdG9uZWdlbi5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHRyYW5zcG9ydC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHRyYW5zcG9ydF9pY2UuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVx0cmFuc3BvcnRfc3J0cC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHRyYW5zcG9ydF91ZHAuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVx0eXBlcy5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHdhdl9wbGF5bGlzdC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHdhdl9wb3J0LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcd2F2ZS5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aC5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFxjb25maWcuaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcZXJybm8uaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcaWNlX3Nlc3Npb24uaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcaWNlX3N0cmFucy5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFxuYXRfZGV0ZWN0LmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoXHN0dW5fYXV0aC5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFxzdHVuX2NvbmZpZy5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFxzdHVuX21zZy5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFxzdHVuX3Nlc3Npb24uaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcc3R1bl90cmFuc2FjdGlvbi5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFx0eXBlcy5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtc2ltcGxlXGV2c3ViLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC1zaW1wbGVcaXNjb21wb3NpbmcuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXNpbXBsZVxwaWRmLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC1zaW1wbGVccHJlc2VuY2UuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXNpbXBsZVxwdWJsaXNoLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC1zaW1wbGVccnBpZC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtc2ltcGxlXHR5cGVzLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC1zaW1wbGVceHBpZGYuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXVhXHNpcF8xMDByZWwuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXVhXHNpcF9pbnYuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXVhXHNpcF9yZWdjLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC11YVxzaXBfcmVwbGFjZXMuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXVhXHNpcF94ZmVyLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX2F1dGguaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9hdXRoX2FrYS5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX2F1dGhfbXNnLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfYXV0b2NvbmYuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9jb25maWcuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9kaWFsb2cuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9lbmRwb2ludC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX2Vycm5vLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfZXZlbnQuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9tb2R1bGUuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9tc2cuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9wYXJzZXIuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9yZXNvbHZlLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdGVsX3VyaS5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3RyYW5zYWN0aW9uLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdHJhbnNwb3J0LmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdHJhbnNwb3J0X2xvb3AuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF90cmFuc3BvcnRfdGNwLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdHJhbnNwb3J0X3Rscy5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3RyYW5zcG9ydF91ZHAuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF90eXBlcy5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3VhX2xheWVyLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdXJpLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdXRpbC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBfc2ltcGxlLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcF91YS5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzdWEtbGliXHBqc3VhLmgiXA0KKwkiLlxQb2NrZXRQSkRsZy5oIlwNCisJIi5cUG9wVXBXbmQuaCJcDQorCSIuXFNldHRpbmdzRGxnLmgiXA0KKwkiLlxTdGRBZnguaCJcDQorCQ0KKw0KKyFFTFNFSUYgICIkKENGRykiID09ICJQb2NrZXRQSiAtIFdpbjMyIChXQ0UgQVJNVjQpIFJlbGVhc2UiDQorDQorREVQX0NQUF9QT1BVUD1cDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbC5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXGJhc2U2NC5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXGNvbmZpZy5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXGNyYzMyLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcZG5zLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcZXJybm8uaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxnZXRvcHQuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxobWFjX21kNS5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXGhtYWNfc2hhMS5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXG1kNS5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXHBjYXAuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxyZXNvbHZlci5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXHNjYW5uZXIuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxzY2FubmVyX2Npc19iaXR3aXNlLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxcc2Nhbm5lcl9jaXNfdWludC5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXHNoYTEuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxzcnZfcmVzb2x2ZXIuaCJcDQorCSIuLlwuLlwuLlxwamxpYi11dGlsXGluY2x1ZGVccGpsaWItdXRpbFxzdHVuX3NpbXBsZS5oIlwNCisJIi4uXC4uXC4uXHBqbGliLXV0aWxcaW5jbHVkZVxwamxpYi11dGlsXHR5cGVzLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWItdXRpbFxpbmNsdWRlXHBqbGliLXV0aWxceG1sLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxhZGRyX3Jlc29sdi5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcYXJyYXkuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGFzc2VydC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XGFzc2VydC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XGNjX2FybWNjLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcY2NfY29kZXcuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxjY19nY2MuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxjY19nY2NlLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcY2NfbXN2Yy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XGNjX213Y2MuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxjdHlwZS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XGVycm5vLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcaGlnaF9wcmVjaXNpb24uaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxtX2F1dG8uaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxvc19hdXRvLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcb3NfZGFyd2lub3MuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxvc19saW51eC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG9zX2xpbnV4X2tlcm5lbC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG9zX3BhbG1vcy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XG9zX3J0ZW1zLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcb3Nfc3Vub3MuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxvc19zeW1iaWFuLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb21wYXRcb3Nfd2luMzIuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGNvbXBhdFxvc193aW4zMl93aW5jZS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XHNldGptcC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XHNpemVfdC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XHN0ZGFyZy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29tcGF0XHN0cmluZy5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29uZmlnLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjb25maWdfc2l0ZS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcY29uZmlnX3NpdGVfc2FtcGxlLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxjdHlwZS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcZXJybm8uaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGV4Y2VwdC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcZmlmb2J1Zi5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcZmlsZV9hY2Nlc3MuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGZpbGVfaW8uaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGd1aWQuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGhhc2guaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGlvcXVldWUuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXGlwX2hlbHBlci5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcbGlzdC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcbGlzdF9pLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxsb2NrLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxsb2cuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXG9zLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxwb29sLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxwb29sX2FsdC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpccG9vbF9idWYuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHBvb2xfaS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpccmFuZC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpccmJ0cmVlLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxzb2NrLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxzb2NrX3NlbGVjdC5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcc3RyaW5nLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalxzdHJpbmdfaS5oIlwNCisJIi4uXC4uXC4uXHBqbGliXGluY2x1ZGVccGpcdGltZXIuaCJcDQorCSIuLlwuLlwuLlxwamxpYlxpbmNsdWRlXHBqXHR5cGVzLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwalx1bmljb2RlLmgiXA0KKwkiLi5cLi5cLi5ccGpsaWJcaW5jbHVkZVxwamxpYi5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhLWNvZGVjLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWEtY29kZWNcY29uZmlnLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWEtY29kZWNcY29uZmlnX2F1dG8uaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYS1jb2RlY1xnc20uaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYS1jb2RlY1xpbGJjLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWEtY29kZWNcbDE2LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWEtY29kZWNcc3BlZXguaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYS1jb2RlY1x0eXBlcy5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcYWxhd191bGF3LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcYmlkaXJlY3Rpb25hbC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGNsb2NrLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcY29kZWMuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxjb25mZXJlbmNlLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcY29uZmlnLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcY29uZmlnX2F1dG8uaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxlY2hvLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcZWNob19wb3J0LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcZW5kcG9pbnQuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxlcnJuby5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXGc3MTEuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxqYnVmLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcbWFzdGVyX3BvcnQuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxtZW1fcG9ydC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXG51bGxfcG9ydC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHBsYy5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHBvcnQuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxyZXNhbXBsZS5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHJ0Y3AuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxydHAuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxzZHAuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxzZHBfbmVnLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcc2Vzc2lvbi5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHNpbGVuY2VkZXQuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxzb3VuZC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHNvdW5kX3BvcnQuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxzcGxpdGNvbWIuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVxzdHJlYW0uaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVx0b25lZ2VuLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcdHJhbnNwb3J0LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcdHJhbnNwb3J0X2ljZS5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHRyYW5zcG9ydF9zcnRwLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcdHJhbnNwb3J0X3VkcC5oIlwNCisJIi4uXC4uXC4uXHBqbWVkaWFcaW5jbHVkZVxwam1lZGlhXHR5cGVzLmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcd2F2X3BsYXlsaXN0LmgiXA0KKwkiLi5cLi5cLi5ccGptZWRpYVxpbmNsdWRlXHBqbWVkaWFcd2F2X3BvcnQuaCJcDQorCSIuLlwuLlwuLlxwam1lZGlhXGluY2x1ZGVccGptZWRpYVx3YXZlLmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoLmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoXGNvbmZpZy5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFxlcnJuby5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFxpY2Vfc2Vzc2lvbi5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFxpY2Vfc3RyYW5zLmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoXG5hdF9kZXRlY3QuaCJcDQorCSIuLlwuLlwuLlxwam5hdGhcaW5jbHVkZVxwam5hdGhcc3R1bl9hdXRoLmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoXHN0dW5fY29uZmlnLmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoXHN0dW5fbXNnLmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoXHN0dW5fc2Vzc2lvbi5oIlwNCisJIi4uXC4uXC4uXHBqbmF0aFxpbmNsdWRlXHBqbmF0aFxzdHVuX3RyYW5zYWN0aW9uLmgiXA0KKwkiLi5cLi5cLi5ccGpuYXRoXGluY2x1ZGVccGpuYXRoXHR5cGVzLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC1zaW1wbGVcZXZzdWIuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXNpbXBsZVxpc2NvbXBvc2luZy5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtc2ltcGxlXHBpZGYuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXNpbXBsZVxwcmVzZW5jZS5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtc2ltcGxlXHB1Ymxpc2guaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXNpbXBsZVxycGlkLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcC1zaW1wbGVcdHlwZXMuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXNpbXBsZVx4cGlkZi5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtdWFcc2lwXzEwMHJlbC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtdWFcc2lwX2ludi5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtdWFcc2lwX3JlZ2MuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLXVhXHNpcF9yZXBsYWNlcy5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXAtdWFcc2lwX3hmZXIuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfYXV0aC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX2F1dGhfYWthLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfYXV0aF9tc2cuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9hdXRvY29uZi5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX2NvbmZpZy5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX2RpYWxvZy5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX2VuZHBvaW50LmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfZXJybm8uaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF9ldmVudC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX21vZHVsZS5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX21zZy5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3BhcnNlci5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3Jlc29sdmUuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF90ZWxfdXJpLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdHJhbnNhY3Rpb24uaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF90cmFuc3BvcnQuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF90cmFuc3BvcnRfbG9vcC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3RyYW5zcG9ydF90Y3AuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF90cmFuc3BvcnRfdGxzLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdHJhbnNwb3J0X3VkcC5oIlwNCisJIi4uXC4uXC4uXHBqc2lwXGluY2x1ZGVccGpzaXBcc2lwX3R5cGVzLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcFxzaXBfdWFfbGF5ZXIuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF91cmkuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwXHNpcF91dGlsLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanNpcF9zaW1wbGUuaCJcDQorCSIuLlwuLlwuLlxwanNpcFxpbmNsdWRlXHBqc2lwX3VhLmgiXA0KKwkiLi5cLi5cLi5ccGpzaXBcaW5jbHVkZVxwanN1YS1saWJccGpzdWEuaCJcDQorCSIuXFBvY2tldFBKRGxnLmgiXA0KKwkiLlxQb3BVcFduZC5oIlwNCisJIi5cU2V0dGluZ3NEbGcuaCJcDQorCSIuXFN0ZEFmeC5oIlwNCisJDQorDQorIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gIlBvY2tldFBKIC0gV2luMzIgKFdDRSBBUk1WNCkgRGVidWciDQorDQorREVQX0NQUF9QT1BVUD1cDQorCSIuXFBvcFVwV25kLmgiXA0KKwkiLlxTdGRBZnguaCJcDQorCQ0KKw0KKyFFTkRJRiANCisNCisjIEVuZCBTb3VyY2UgRmlsZQ0KKyMgQmVnaW4gU291cmNlIEZpbGUNCisNCitTT1VSQ0U9LlxTZXR0aW5nc0RsZy5jcHANCisNCishSUYgICIkKENGRykiID09ICJQb2NrZXRQSiAtIFdpbjMyIChXQ0UgZW11bGF0b3IpIFJlbGVhc2UiDQorDQorREVQX0NQUF9TRVRUST1cDQorCSIuXFBvY2tldFBKLmgiXA0KKwkiLlxTZXR0aW5nc0RsZy5oIlwNCisJIi5cU3RkQWZ4LmgiXA0KKwkNCisNCishRUxTRUlGICAiJChDRkcpIiA9PSAiUG9ja2V0UEogLSBXaW4zMiAoV0NFIGVtdWxhdG9yKSBEZWJ1ZyINCisNCitERVBfQ1BQX1NFVFRJPVwNCisJIi5cUG9ja2V0UEouaCJcDQorCSIuXFNldHRpbmdzRGxnLmgiXA0KKwkiLlxTdGRBZnguaCJcDQorCQ0KKw0KKyFFTFNFSUYgICIkKENGRykiID09ICJQb2NrZXRQSiAtIFdpbjMyIChXQ0UgQVJNVjQpIFJlbGVhc2UiDQorDQorREVQX0NQUF9TRVRUST1cDQorCSIuXFBvY2tldFBKLmgiXA0KKwkiLlxTZXR0aW5nc0RsZy5oIlwNCisJIi5cU3RkQWZ4LmgiXA0KKwkNCisNCishRUxTRUlGICAiJChDRkcpIiA9PSAiUG9ja2V0UEogLSBXaW4zMiAoV0NFIEFSTVY0KSBEZWJ1ZyINCisNCitERVBfQ1BQX1NFVFRJPVwNCisJIi5cUG9ja2V0UEouaCJcDQorCSIuXFNldHRpbmdzRGxnLmgiXA0KKwkiLlxTdGRBZnguaCJcDQorCQ0KKw0KKyFFTkRJRiANCisNCisjIEVuZCBTb3VyY2UgRmlsZQ0KKyMgQmVnaW4gU291cmNlIEZpbGUNCisNCitTT1VSQ0U9LlxTdGRBZnguY3BwDQorDQorIUlGICAiJChDRkcpIiA9PSAiUG9ja2V0UEogLSBXaW4zMiAoV0NFIGVtdWxhdG9yKSBSZWxlYXNlIg0KKw0KK0RFUF9DUFBfU1REQUY9XA0KKwkiLlxTdGRBZnguaCJcDQorCQ0KKyMgQUREIENQUCAvWWMic3RkYWZ4LmgiDQorDQorIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gIlBvY2tldFBKIC0gV2luMzIgKFdDRSBlbXVsYXRvcikgRGVidWciDQorDQorREVQX0NQUF9TVERBRj1cDQorCSIuXFN0ZEFmeC5oIlwNCisJDQorIyBBREQgQ1BQIC9ZYyJzdGRhZnguaCINCisNCishRUxTRUlGICAiJChDRkcpIiA9PSAiUG9ja2V0UEogLSBXaW4zMiAoV0NFIEFSTVY0KSBSZWxlYXNlIg0KKw0KK0RFUF9DUFBfU1REQUY9XA0KKwkiLlxTdGRBZnguaCJcDQorCQ0KKyMgQUREIENQUCAvWWMic3RkYWZ4LmgiDQorDQorIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gIlBvY2tldFBKIC0gV2luMzIgKFdDRSBBUk1WNCkgRGVidWciDQorDQorREVQX0NQUF9TVERBRj1cDQorCSIuXFN0ZEFmeC5oIlwNCisJDQorIyBBREQgQ1BQIC9ZYyJzdGRhZnguaCINCisNCishRU5ESUYgDQorDQorIyBFbmQgU291cmNlIEZpbGUNCisjIEVuZCBHcm91cA0KKyMgQmVnaW4gR3JvdXAgIkhlYWRlciBGaWxlcyINCisNCisjIFBST1AgRGVmYXVsdF9GaWx0ZXIgImg7aHBwO2h4eDtobTtpbmwiDQorIyBCZWdpbiBTb3VyY2UgRmlsZQ0KKw0KK1NPVVJDRT0uXG5ld3Jlcy5oDQorIyBFbmQgU291cmNlIEZpbGUNCisjIEJlZ2luIFNvdXJjZSBGaWxlDQorDQorU09VUkNFPS5cUG9ja2V0UEouaA0KKyMgRW5kIFNvdXJjZSBGaWxlDQorIyBCZWdpbiBTb3VyY2UgRmlsZQ0KKw0KK1NPVVJDRT0uXFBvY2tldFBKRGxnLmgNCisjIEVuZCBTb3VyY2UgRmlsZQ0KKyMgQmVnaW4gU291cmNlIEZpbGUNCisNCitTT1VSQ0U9LlxQb3BVcFduZC5oDQorIyBFbmQgU291cmNlIEZpbGUNCisjIEJlZ2luIFNvdXJjZSBGaWxlDQorDQorU09VUkNFPS5cUmVzb3VyY2UuaA0KKyMgRW5kIFNvdXJjZSBGaWxlDQorIyBCZWdpbiBTb3VyY2UgRmlsZQ0KKw0KK1NPVVJDRT0uXFNldHRpbmdzRGxnLmgNCisjIEVuZCBTb3VyY2UgRmlsZQ0KKyMgQmVnaW4gU291cmNlIEZpbGUNCisNCitTT1VSQ0U9LlxTdGRBZnguaA0KKyMgRW5kIFNvdXJjZSBGaWxlDQorIyBFbmQgR3JvdXANCisjIEJlZ2luIEdyb3VwICJSZXNvdXJjZSBGaWxlcyINCisNCisjIFBST1AgRGVmYXVsdF9GaWx0ZXIgImljbztjdXI7Ym1wO2RsZztyYzI7cmN0O2JpbjtyZ3M7Z2lmO2pwZztqcGVnO2pwZSINCisjIEJlZ2luIFNvdXJjZSBGaWxlDQorDQorU09VUkNFPS5ccmVzXGFjdGlvbi5ibXANCisjIEVuZCBTb3VyY2UgRmlsZQ0KKyMgQmVnaW4gU291cmNlIEZpbGUNCisNCitTT1VSQ0U9LlxyZXNcYmxhbmsuYm1wDQorIyBFbmQgU291cmNlIEZpbGUNCisjIEJlZ2luIFNvdXJjZSBGaWxlDQorDQorU09VUkNFPS5ccmVzXGludmlzaWJsLmJtcA0KKyMgRW5kIFNvdXJjZSBGaWxlDQorIyBCZWdpbiBTb3VyY2UgRmlsZQ0KKw0KK1NPVVJDRT0uXHJlc1xpbnZpc2libC5pY28NCisjIEVuZCBTb3VyY2UgRmlsZQ0KKyMgQmVnaW4gU291cmNlIEZpbGUNCisNCitTT1VSQ0U9LlxyZXNcb2ZmbGluZS5ibXANCisjIEVuZCBTb3VyY2UgRmlsZQ0KKyMgQmVnaW4gU291cmNlIEZpbGUNCisNCitTT1VSQ0U9LlxyZXNcb2ZmbGluZS5pY28NCisjIEVuZCBTb3VyY2UgRmlsZQ0KKyMgQmVnaW4gU291cmNlIEZpbGUNCisNCitTT1VSQ0U9LlxyZXNcb25saW5lLmJtcA0KKyMgRW5kIFNvdXJjZSBGaWxlDQorIyBCZWdpbiBTb3VyY2UgRmlsZQ0KKw0KK1NPVVJDRT0uXHJlc1xvbmxpbmUuaWNvDQorIyBFbmQgU291cmNlIEZpbGUNCisjIEJlZ2luIFNvdXJjZSBGaWxlDQorDQorU09VUkNFPS5ccmVzXFBvY2tldFBKLmljbw0KKyMgRW5kIFNvdXJjZSBGaWxlDQorIyBCZWdpbiBTb3VyY2UgRmlsZQ0KKw0KK1NPVVJDRT0uXHJlc1xQb2NrZXRQSi5yYzINCisjIFBST1AgRXhjbHVkZV9Gcm9tX1NjYW4gLTENCisjIFBST1AgQkFTRSBFeGNsdWRlX0Zyb21fQnVpbGQgMQ0KKyMgUFJPUCBFeGNsdWRlX0Zyb21fQnVpbGQgMQ0KKyMgRW5kIFNvdXJjZSBGaWxlDQorIyBFbmQgR3JvdXANCisjIEJlZ2luIFNvdXJjZSBGaWxlDQorDQorU09VUkNFPS5cUmVhZE1lLnR4dA0KKyMgRW5kIFNvdXJjZSBGaWxlDQorIyBFbmQgVGFyZ2V0DQorIyBFbmQgUHJvamVjdA0KZGlmZiAtLWdpdCBhL3Bqc2lwLWFwcHMvc3JjL3BvY2tldHBqL1BvY2tldFBKLnZjdyBiL3Bqc2lwLWFwcHMvc3JjL3BvY2tldHBqL1BvY2tldFBKLnZjdwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYmZkNjA1Ci0tLSAvZGV2L251bGwKKysrIGIvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovUG9ja2V0UEoudmN3CkBAIC0wLDAgKzEsMjU0IEBACitNaWNyb3NvZnQgZU1iZWRkZWQgVmlzdWFsIFRvb2xzIFdvcmtzcGFjZSBGaWxlLCBGb3JtYXQgVmVyc2lvbiA0LjAwDQorIyBXQVJOSU5HOiBETyBOT1QgRURJVCBPUiBERUxFVEUgVEhJUyBXT1JLU1BBQ0UgRklMRSENCisNCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorDQorUHJvamVjdDogIlBvY2tldFBKIj0iLlxQb2NrZXRQSi52Y3AiIC0gUGFja2FnZSBPd25lcj08ND4NCisNCitQYWNrYWdlPTw1Pg0KK3t7ew0KK319fQ0KKw0KK1BhY2thZ2U9PDQ+DQore3t7DQorICAgIEJlZ2luIFByb2plY3QgRGVwZW5kZW5jeQ0KKyAgICBQcm9qZWN0X0RlcF9OYW1lIGxpYmdzbWNvZGVjDQorICAgIEVuZCBQcm9qZWN0IERlcGVuZGVuY3kNCisgICAgQmVnaW4gUHJvamVjdCBEZXBlbmRlbmN5DQorICAgIFByb2plY3RfRGVwX05hbWUgbGlicG9ydGF1ZGlvDQorICAgIEVuZCBQcm9qZWN0IERlcGVuZGVuY3kNCisgICAgQmVnaW4gUHJvamVjdCBEZXBlbmRlbmN5DQorICAgIFByb2plY3RfRGVwX05hbWUgbGlicmVzYW1wbGUNCisgICAgRW5kIFByb2plY3QgRGVwZW5kZW5jeQ0KKyAgICBCZWdpbiBQcm9qZWN0IERlcGVuZGVuY3kNCisgICAgUHJvamVjdF9EZXBfTmFtZSBsaWJzcnRwDQorICAgIEVuZCBQcm9qZWN0IERlcGVuZGVuY3kNCisgICAgQmVnaW4gUHJvamVjdCBEZXBlbmRlbmN5DQorICAgIFByb2plY3RfRGVwX05hbWUgcGpsaWJfdXRpbF93aW5jZQ0KKyAgICBFbmQgUHJvamVjdCBEZXBlbmRlbmN5DQorICAgIEJlZ2luIFByb2plY3QgRGVwZW5kZW5jeQ0KKyAgICBQcm9qZWN0X0RlcF9OYW1lIHBqbGliX3dpbmNlDQorICAgIEVuZCBQcm9qZWN0IERlcGVuZGVuY3kNCisgICAgQmVnaW4gUHJvamVjdCBEZXBlbmRlbmN5DQorICAgIFByb2plY3RfRGVwX05hbWUgcGptZWRpYV9jb2RlY193aW5jZQ0KKyAgICBFbmQgUHJvamVjdCBEZXBlbmRlbmN5DQorICAgIEJlZ2luIFByb2plY3QgRGVwZW5kZW5jeQ0KKyAgICBQcm9qZWN0X0RlcF9OYW1lIHBqbWVkaWFfd2luY2UNCisgICAgRW5kIFByb2plY3QgRGVwZW5kZW5jeQ0KKyAgICBCZWdpbiBQcm9qZWN0IERlcGVuZGVuY3kNCisgICAgUHJvamVjdF9EZXBfTmFtZSBwam5hdGhfd2luY2UNCisgICAgRW5kIFByb2plY3QgRGVwZW5kZW5jeQ0KKyAgICBCZWdpbiBQcm9qZWN0IERlcGVuZGVuY3kNCisgICAgUHJvamVjdF9EZXBfTmFtZSBwanNpcF9jb3JlX3dpbmNlDQorICAgIEVuZCBQcm9qZWN0IERlcGVuZGVuY3kNCisgICAgQmVnaW4gUHJvamVjdCBEZXBlbmRlbmN5DQorICAgIFByb2plY3RfRGVwX05hbWUgcGpzaXBfc2ltcGxlX3dpbmNlDQorICAgIEVuZCBQcm9qZWN0IERlcGVuZGVuY3kNCisgICAgQmVnaW4gUHJvamVjdCBEZXBlbmRlbmN5DQorICAgIFByb2plY3RfRGVwX05hbWUgcGpzaXBfdWFfd2luY2UNCisgICAgRW5kIFByb2plY3QgRGVwZW5kZW5jeQ0KKyAgICBCZWdpbiBQcm9qZWN0IERlcGVuZGVuY3kNCisgICAgUHJvamVjdF9EZXBfTmFtZSBwanN1YV9saWJfd2luY2UNCisgICAgRW5kIFByb2plY3QgRGVwZW5kZW5jeQ0KKyAgICBCZWdpbiBQcm9qZWN0IERlcGVuZGVuY3kNCisgICAgUHJvamVjdF9EZXBfTmFtZSBsaWJpbGJjY29kZWMNCisgICAgRW5kIFByb2plY3QgRGVwZW5kZW5jeQ0KKyAgICBCZWdpbiBQcm9qZWN0IERlcGVuZGVuY3kNCisgICAgUHJvamVjdF9EZXBfTmFtZSBsaWJzcGVleA0KKyAgICBFbmQgUHJvamVjdCBEZXBlbmRlbmN5DQorfX19DQorDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKw0KK1Byb2plY3Q6ICJsaWJnc21jb2RlYyI9Ii4uXC4uXC4uXHRoaXJkX3BhcnR5XGJ1aWxkXGdzbVxsaWJnc21jb2RlYy52Y3AiIC0gUGFja2FnZSBPd25lcj08ND4NCisNCitQYWNrYWdlPTw1Pg0KK3t7ew0KK319fQ0KKw0KK1BhY2thZ2U9PDQ+DQore3t7DQorfX19DQorDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKw0KK1Byb2plY3Q6ICJsaWJpbGJjY29kZWMiPSIuLlwuLlwuLlx0aGlyZF9wYXJ0eVxidWlsZFxpbGJjXGxpYmlsYmNjb2RlYy52Y3AiIC0gUGFja2FnZSBPd25lcj08ND4NCisNCitQYWNrYWdlPTw1Pg0KK3t7ew0KK319fQ0KKw0KK1BhY2thZ2U9PDQ+DQore3t7DQorfX19DQorDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKw0KK1Byb2plY3Q6ICJsaWJwb3J0YXVkaW8iPSIuLlwuLlwuLlx0aGlyZF9wYXJ0eVxidWlsZFxwb3J0YXVkaW9cbGlicG9ydGF1ZGlvLnZjcCIgLSBQYWNrYWdlIE93bmVyPTw0Pg0KKw0KK1BhY2thZ2U9PDU+DQore3t7DQorfX19DQorDQorUGFja2FnZT08ND4NCit7e3sNCit9fX0NCisNCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorDQorUHJvamVjdDogImxpYnJlc2FtcGxlIj0iLi5cLi5cLi5cdGhpcmRfcGFydHlcYnVpbGRccmVzYW1wbGVcbGlicmVzYW1wbGUudmNwIiAtIFBhY2thZ2UgT3duZXI9PDQ+DQorDQorUGFja2FnZT08NT4NCit7e3sNCit9fX0NCisNCitQYWNrYWdlPTw0Pg0KK3t7ew0KK319fQ0KKw0KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCisNCitQcm9qZWN0OiAibGlic3BlZXgiPSIuLlwuLlwuLlx0aGlyZF9wYXJ0eVxidWlsZFxzcGVleFxsaWJzcGVleC52Y3AiIC0gUGFja2FnZSBPd25lcj08ND4NCisNCitQYWNrYWdlPTw1Pg0KK3t7ew0KK319fQ0KKw0KK1BhY2thZ2U9PDQ+DQore3t7DQorfX19DQorDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKw0KK1Byb2plY3Q6ICJsaWJzcnRwIj0iLi5cLi5cLi5cdGhpcmRfcGFydHlcYnVpbGRcc3J0cFxsaWJzcnRwLnZjcCIgLSBQYWNrYWdlIE93bmVyPTw0Pg0KKw0KK1BhY2thZ2U9PDU+DQore3t7DQorfX19DQorDQorUGFja2FnZT08ND4NCit7e3sNCit9fX0NCisNCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorDQorUHJvamVjdDogInBqbGliX3V0aWxfd2luY2UiPSIuLlwuLlwuLlxwamxpYi11dGlsXGJ1aWxkXHdpbmNlLWV2YzRccGpsaWJfdXRpbF93aW5jZS52Y3AiIC0gUGFja2FnZSBPd25lcj08ND4NCisNCitQYWNrYWdlPTw1Pg0KK3t7ew0KK319fQ0KKw0KK1BhY2thZ2U9PDQ+DQore3t7DQorfX19DQorDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKw0KK1Byb2plY3Q6ICJwamxpYl93aW5jZSI9Ii4uXC4uXC4uXHBqbGliXGJ1aWxkXHdpbmNlLWV2YzRccGpsaWJfd2luY2UudmNwIiAtIFBhY2thZ2UgT3duZXI9PDQ+DQorDQorUGFja2FnZT08NT4NCit7e3sNCit9fX0NCisNCitQYWNrYWdlPTw0Pg0KK3t7ew0KK319fQ0KKw0KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCisNCitQcm9qZWN0OiAicGptZWRpYV9jb2RlY193aW5jZSI9Ii4uXC4uXC4uXHBqbWVkaWFcYnVpbGRcd2luY2UtZXZjNFxwam1lZGlhX2NvZGVjX3dpbmNlLnZjcCIgLSBQYWNrYWdlIE93bmVyPTw0Pg0KKw0KK1BhY2thZ2U9PDU+DQore3t7DQorfX19DQorDQorUGFja2FnZT08ND4NCit7e3sNCit9fX0NCisNCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorDQorUHJvamVjdDogInBqbWVkaWFfd2luY2UiPSIuLlwuLlwuLlxwam1lZGlhXGJ1aWxkXHdpbmNlLWV2YzRccGptZWRpYV93aW5jZS52Y3AiIC0gUGFja2FnZSBPd25lcj08ND4NCisNCitQYWNrYWdlPTw1Pg0KK3t7ew0KK319fQ0KKw0KK1BhY2thZ2U9PDQ+DQore3t7DQorfX19DQorDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKw0KK1Byb2plY3Q6ICJwam5hdGhfd2luY2UiPSIuLlwuLlwuLlxwam5hdGhcYnVpbGRcd2luY2UtZXZjNFxwam5hdGhfd2luY2UudmNwIiAtIFBhY2thZ2UgT3duZXI9PDQ+DQorDQorUGFja2FnZT08NT4NCit7e3sNCit9fX0NCisNCitQYWNrYWdlPTw0Pg0KK3t7ew0KK319fQ0KKw0KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCisNCitQcm9qZWN0OiAicGpzaXBfY29yZV93aW5jZSI9Ii4uXC4uXC4uXHBqc2lwXGJ1aWxkXHdpbmNlLWV2YzRccGpzaXBfY29yZV93aW5jZS52Y3AiIC0gUGFja2FnZSBPd25lcj08ND4NCisNCitQYWNrYWdlPTw1Pg0KK3t7ew0KK319fQ0KKw0KK1BhY2thZ2U9PDQ+DQore3t7DQorfX19DQorDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKw0KK1Byb2plY3Q6ICJwanNpcF9zaW1wbGVfd2luY2UiPSIuLlwuLlwuLlxwanNpcFxidWlsZFx3aW5jZS1ldmM0XHBqc2lwX3NpbXBsZV93aW5jZS52Y3AiIC0gUGFja2FnZSBPd25lcj08ND4NCisNCitQYWNrYWdlPTw1Pg0KK3t7ew0KK319fQ0KKw0KK1BhY2thZ2U9PDQ+DQore3t7DQorfX19DQorDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKw0KK1Byb2plY3Q6ICJwanNpcF91YV93aW5jZSI9Ii4uXC4uXC4uXHBqc2lwXGJ1aWxkXHdpbmNlLWV2YzRccGpzaXBfdWFfd2luY2UudmNwIiAtIFBhY2thZ2UgT3duZXI9PDQ+DQorDQorUGFja2FnZT08NT4NCit7e3sNCit9fX0NCisNCitQYWNrYWdlPTw0Pg0KK3t7ew0KK319fQ0KKw0KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCisNCitQcm9qZWN0OiAicGpzdWFfbGliX3dpbmNlIj0iLi5cLi5cLi5ccGpzaXBcYnVpbGRcd2luY2UtZXZjNFxwanN1YV9saWJfd2luY2UudmNwIiAtIFBhY2thZ2UgT3duZXI9PDQ+DQorDQorUGFja2FnZT08NT4NCit7e3sNCit9fX0NCisNCitQYWNrYWdlPTw0Pg0KK3t7ew0KK319fQ0KKw0KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCisNCitHbG9iYWw6DQorDQorUGFja2FnZT08NT4NCit7e3sNCit9fX0NCisNCitQYWNrYWdlPTwzPg0KK3t7ew0KK319fQ0KKw0KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCisNCmRpZmYgLS1naXQgYS9wanNpcC1hcHBzL3NyYy9wb2NrZXRwai9Qb2NrZXRQSkRsZy5jcHAgYi9wanNpcC1hcHBzL3NyYy9wb2NrZXRwai9Qb2NrZXRQSkRsZy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDMwYjgyMgotLS0gL2Rldi9udWxsCisrKyBiL3Bqc2lwLWFwcHMvc3JjL3BvY2tldHBqL1BvY2tldFBKRGxnLmNwcApAQCAtMCwwICsxLDcwOSBAQAorLy8gUG9ja2V0UEpEbGcuY3BwIDogaW1wbGVtZW50YXRpb24gZmlsZQorLy8KKworI2luY2x1ZGUgInN0ZGFmeC5oIgorI2luY2x1ZGUgIlBvY2tldFBKLmgiCisjaW5jbHVkZSAiUG9ja2V0UEpEbGcuaCIKKyNpbmNsdWRlIDxpcGhscGFwaS5oPgorCisjaWZkZWYgX0RFQlVHCisjZGVmaW5lIG5ldyBERUJVR19ORVcKKyN1bmRlZiBUSElTX0ZJTEUKK3N0YXRpYyBjaGFyIFRISVNfRklMRVtdID0gX19GSUxFX187CisjZW5kaWYKKworI2RlZmluZSBUSU1FUl9JRCAgICAxMDEKK3N0YXRpYyBDUG9ja2V0UEpEbGcgKnRoZURsZzsKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIENQb2NrZXRQSkRsZyBkaWFsb2cKKworQ1BvY2tldFBKRGxnOjpDUG9ja2V0UEpEbGcoQ1duZCogcFBhcmVudCAvKj1OVUxMKi8pCisJOiBDRGlhbG9nKENQb2NrZXRQSkRsZzo6SURELCBwUGFyZW50KSwgbV9Qb3BVcChOVUxMKQoreworCS8ve3tBRlhfREFUQV9JTklUKENQb2NrZXRQSkRsZykKKwkJLy8gTk9URTogdGhlIENsYXNzV2l6YXJkIHdpbGwgYWRkIG1lbWJlciBpbml0aWFsaXphdGlvbiBoZXJlCisJLy99fUFGWF9EQVRBX0lOSVQKKwkvLyBOb3RlIHRoYXQgTG9hZEljb24gZG9lcyBub3QgcmVxdWlyZSBhIHN1YnNlcXVlbnQgRGVzdHJveUljb24gaW4gV2luMzIKKwltX2hJY29uID0gQWZ4R2V0QXBwKCktPkxvYWRJY29uKElEUl9NQUlORlJBTUUpOworCisJdGhlRGxnID0gdGhpczsKKworCW1fUG9wVXAgPSBuZXcgQ1BvcFVwV25kKHRoaXMpOworCW1fUG9wVXAtPkhpZGUoKTsKKworCXVuc2lnbmVkIGk7CisJbV9Qb3BVcENvdW50ID0gMDsKKwlmb3IgKGk9MDsgaTxQT1BVUF9NQVhfVFlQRTsgKytpKSB7CisJICAgIG1fUG9wVXBTdGF0ZVtpXSA9IEZBTFNFOworCX0KK30KKwordm9pZCBDUG9ja2V0UEpEbGc6OkRvRGF0YUV4Y2hhbmdlKENEYXRhRXhjaGFuZ2UqIHBEWCkKK3sKKwlDRGlhbG9nOjpEb0RhdGFFeGNoYW5nZShwRFgpOworCS8ve3tBRlhfREFUQV9NQVAoQ1BvY2tldFBKRGxnKQorCUREWF9Db250cm9sKHBEWCwgSURDX1VSTCwgbV9VcmwpOworCUREWF9Db250cm9sKHBEWCwgSURDX0JVRERZX0xJU1QsIG1fQnVkZHlMaXN0KTsKKwlERFhfQ29udHJvbChwRFgsIElEQ19CVE5fQUNUSU9OLCBtX0J0blVybEFjdGlvbik7CisJRERYX0NvbnRyb2wocERYLCBJRENfQlROX0FDQywgbV9CdG5BY2MpOworCUREWF9Db250cm9sKHBEWCwgSURDX0FDQ19JRCwgbV9BY2NJZCk7CisJLy99fUFGWF9EQVRBX01BUAorfQorCitCRUdJTl9NRVNTQUdFX01BUChDUG9ja2V0UEpEbGcsIENEaWFsb2cpCisJLy97e0FGWF9NU0dfTUFQKENQb2NrZXRQSkRsZykKKwlPTl9CTl9DTElDS0VEKElEQ19CVE5fQUNDLCBPbkJ0bkFjYykKKwlPTl9CTl9DTElDS0VEKElEQ19CVE5fQUNUSU9OLCBPbkJ0bkFjdGlvbikKKwlPTl9DT01NQU5EKElEQ19BQ0NfU0VUVElOR1MsIE9uU2V0dGluZ3MpCisJT05fQ09NTUFORChJRENfVVJJX0NBTEwsIE9uVXJpQ2FsbCkKKwlPTl9XTV9USU1FUigpCisJT05fQ09NTUFORChJRENfVVJJX0FERF9CVUREWSwgT25VcmlBZGRCdWRkeSkKKwlPTl9DT01NQU5EKElEQ19VUklfREVMX0JVRERZLCBPblVyaURlbEJ1ZGR5KQorCU9OX0NPTU1BTkQoSURDX0FDQ19PTkxJTkUsIE9uQWNjT25saW5lKQorCU9OX0NPTU1BTkQoSURDX0FDQ19JTlZJU0lCTEUsIE9uQWNjSW52aXNpYmxlKQorCU9OX05PVElGWShOTV9DTElDSywgSURDX0JVRERZX0xJU1QsIE9uQ2xpY2tCdWRkeUxpc3QpCisJLy99fUFGWF9NU0dfTUFQCitFTkRfTUVTU0FHRV9NQVAoKQorCisKK3ZvaWQgQ1BvY2tldFBKRGxnOjpFcnJvcihjb25zdCBDU3RyaW5nICZ0aXRsZSwgcGpfc3RhdHVzX3QgcmMpCit7CisgICAgY2hhciBlcnJtc2dbUEpfRVJSX01TR19TSVpFXTsKKyAgICB3Y2hhcl90IHdlcnJtc2dbUEpfRVJSX01TR19TSVpFXTsKKworICAgIHBqX3N0cmVycm9yKHJjLCBlcnJtc2csIHNpemVvZihlcnJtc2cpKTsKKyAgICBwal9hbnNpX3RvX3VuaWNvZGUoZXJybXNnLCBzdHJsZW4oZXJybXNnKSwgd2Vycm1zZywgUEpfQVJSQVlfU0laRSh3ZXJybXNnKSk7CisKKyAgICBBZnhNZXNzYWdlQm94KHRpdGxlICsgX1QoIjogIikgKyB3ZXJybXNnKTsKK30KKworQk9PTCBDUG9ja2V0UEpEbGc6OlJlc3RhcnQoKQoreworICAgIHBqX3N0YXR1c190IHN0YXR1czsKKworICAgIGNoYXIgdmVyWzgwXTsKKyAgICBzcHJpbnRmKHZlciwgIlBvY2tldFBKLyVzIiwgcGpfZ2V0X3ZlcnNpb24oKSk7CisKKyAgICBTaG93V2luZG93KFNXX1NIT1cpOworICAgIFBvcFVwX1Nob3coUE9QVVBfUkVHSVNUUkFUSU9OLCB2ZXIsCisJICAgICAgICJTdGFydGluZyB1cC4uLi4iLCAiIiwgIiIsICIiLCAwKTsKKworICAgIEtpbGxUaW1lcihUSU1FUl9JRCk7CisKKyAgICAvLyBEZXN0cm95IGZpcnN0LgorICAgIFBvcFVwX01vZGlmeShQT1BVUF9SRUdJU1RSQVRJT04sIFBPUFVQX0VMX1RJVExFMywgIkNsZWFuaW5nIHVwLi4iKTsKKyAgICBwanN1YV9kZXN0cm95KCk7CisKKyAgICBtX0J0bkFjYy5TZXRCaXRtYXAoOjpMb2FkQml0bWFwKEFmeEdldEluc3RhbmNlSGFuZGxlKCksIE1BS0VJTlRSRVNPVVJDRShJREJfT0ZGTElORSkpICk7CisgICAgVXBkYXRlV2luZG93KCk7CisKKworICAgIC8vIENyZWF0ZQorICAgIFBvcFVwX1Nob3coUE9QVVBfUkVHSVNUUkFUSU9OLCB2ZXIsCisJICAgICAgICJTdGFydGluZyB1cC4uLi4iLCAiQ3JlYXRpbmcgc3RhY2suLiIsICIiLCAiIiwgMCk7CisKKyAgICBzdGF0dXMgPSBwanN1YV9jcmVhdGUoKTsKKyAgICBpZiAoc3RhdHVzICE9IFBKX1NVQ0NFU1MpIHsKKwlFcnJvcihfVCgiRXJyb3IgaW4gY3JlYXRpbmcgbGlicmFyeSIpLCBzdGF0dXMpOworCVBvcFVwX0hpZGUoUE9QVVBfUkVHSVNUUkFUSU9OKTsKKwlyZXR1cm4gRkFMU0U7CisgICAgfQorCisgICAgcGpzdWFfY29uZmlnIGNmZzsKKyAgICBwanN1YV9sb2dnaW5nX2NvbmZpZyBsb2dfY2ZnOworICAgIHBqc3VhX21lZGlhX2NvbmZpZyBtZWRpYV9jZmc7CisKKyAgICBwanN1YV9jb25maWdfZGVmYXVsdCgmY2ZnKTsKKyAgICBjZmcubWF4X2NhbGxzID0gMTsKKyAgICBjZmcudGhyZWFkX2NudCA9IDA7CisgICAgY2ZnLnVzZXJfYWdlbnQgPSBwal9zdHIodmVyKTsKKworICAgIGNmZy5jYi5vbl9jYWxsX3N0YXRlID0gJm9uX2NhbGxfc3RhdGU7CisgICAgY2ZnLmNiLm9uX2NhbGxfbWVkaWFfc3RhdGUgPSAmb25fY2FsbF9tZWRpYV9zdGF0ZTsKKyAgICBjZmcuY2Iub25faW5jb21pbmdfY2FsbCA9ICZvbl9pbmNvbWluZ19jYWxsOworICAgIGNmZy5jYi5vbl9yZWdfc3RhdGUgPSAmb25fcmVnX3N0YXRlOworICAgIGNmZy5jYi5vbl9idWRkeV9zdGF0ZSA9ICZvbl9idWRkeV9zdGF0ZTsKKyAgICBjZmcuY2Iub25fcGFnZXIgPSAmb25fcGFnZXI7CisKKyAgICAvKiBDb25maWd1cmUgbmFtZXNlcnZlciAqLworICAgIGNoYXIgbmFtZXNlcnZlcls2MF07CisgICAgeworCUZJWEVEX0lORk8gZmk7CisJVUxPTkcgbGVuID0gc2l6ZW9mKGZpKTsKKwlDU3RyaW5nIGVycjsKKworCVBvcFVwX01vZGlmeShQT1BVUF9SRUdJU1RSQVRJT04sIFBPUFVQX0VMX1RJVExFMywgIlJldHJpZXZpbmcgbmV0d29yayBwYXJhbWV0ZXJzLi4iKTsKKwlpZiAoR2V0TmV0d29ya1BhcmFtcygmZmksICZsZW4pICE9IEVSUk9SX1NVQ0NFU1MpIHsKKwkgICAgZXJyID0gX1QoIkluZm86IEVycm9yIHF1ZXJ5aW5nIG5ldHdvcmsgcGFyYW1ldGVycy4gWW91IG11c3QgY29uZmlndXJlIEROUyBzZXJ2ZXIuIik7CisJfSBlbHNlIGlmIChmaS5DdXJyZW50RG5zU2VydmVyID09IE5VTEwpIHsKKwkgICAgZXJyID0gX1QoIkluZm86IEROUyBzZXJ2ZXIgbm90IGNvbmZpZ3VyZWQuIFlvdSBtdXN0IGNvbmZpZ3VyZSBETlMgc2VydmVyLiIpOworCX0gCisJCisJaWYgKGVyci5HZXRMZW5ndGgoKSkgeworCSAgICBpZiAobV9DZmcubV9ETlMuR2V0TGVuZ3RoKCkpIHsKKwkJcGpfdW5pY29kZV90b19hbnNpKChMUENUU1RSKW1fQ2ZnLm1fRE5TLCBtX0NmZy5tX0ROUy5HZXRMZW5ndGgoKSwKKwkJCQkgICBuYW1lc2VydmVyLCBzaXplb2YobmFtZXNlcnZlcikpOworCQljZmcubmFtZXNlcnZlcl9jb3VudCA9IDE7CisJCWNmZy5uYW1lc2VydmVyWzBdID0gcGpfc3RyKG5hbWVzZXJ2ZXIpOworCSAgICB9IGVsc2UgeworCQlBZnhNZXNzYWdlQm94KGVycik7CisJCXBqc3VhX2Rlc3Ryb3koKTsKKwkJUG9wVXBfSGlkZShQT1BVUF9SRUdJU1RSQVRJT04pOworCQlyZXR1cm4gRkFMU0U7CisJICAgIH0KKwl9IGVsc2UgeworCSAgICBzdHJjcHkobmFtZXNlcnZlciwgZmkuQ3VycmVudERuc1NlcnZlci0+SXBBZGRyZXNzLlN0cmluZyk7CisJICAgIGNmZy5uYW1lc2VydmVyX2NvdW50ID0gMTsKKwkgICAgY2ZnLm5hbWVzZXJ2ZXJbMF0gPSBwal9zdHIobmFtZXNlcnZlcik7CisJfQorICAgIH0KKworICAgIGNoYXIgdG1wX3N0dW5bODBdOworICAgIGlmIChtX0NmZy5tX1VzZVN0dW4pIHsKKwlwal91bmljb2RlX3RvX2Fuc2koKExQQ1RTVFIpbV9DZmcubV9TdHVuU3J2LCBtX0NmZy5tX1N0dW5TcnYuR2V0TGVuZ3RoKCksCisJCQkgICB0bXBfc3R1biwgc2l6ZW9mKHRtcF9zdHVuKSk7CisJY2ZnLnN0dW5faG9zdCA9IHBqX3N0cih0bXBfc3R1bik7CisgICAgfQorCisgICAgcGpzdWFfbG9nZ2luZ19jb25maWdfZGVmYXVsdCgmbG9nX2NmZyk7CisgICAgbG9nX2NmZy5sb2dfZmlsZW5hbWUgPSBwal9zdHIoIlxcUG9ja2V0UEouVFhUIik7CisKKyAgICBwanN1YV9tZWRpYV9jb25maWdfZGVmYXVsdCgmbWVkaWFfY2ZnKTsKKyAgICBtZWRpYV9jZmcuY2xvY2tfcmF0ZSA9IDgwMDA7CisgICAgbWVkaWFfY2ZnLmF1ZGlvX2ZyYW1lX3B0aW1lID0gNDA7CisgICAgbWVkaWFfY2ZnLmVjX3RhaWxfbGVuID0gMDsKKyAgICBtZWRpYV9jZmcuaWxiY19tb2RlID0gMzA7CisgICAgbWVkaWFfY2ZnLm1heF9tZWRpYV9wb3J0cyA9IDg7CisgICAgbWVkaWFfY2ZnLnF1YWxpdHkgPSAxOworICAgIG1lZGlhX2NmZy50aHJlYWRfY250ID0gMTsKKyAgICBtZWRpYV9jZmcuZW5hYmxlX2ljZSA9IG1fQ2ZnLm1fVXNlSWNlOworICAgIAorICAgIC8vIEluaXQKKyAgICBQb3BVcF9Nb2RpZnkoUE9QVVBfUkVHSVNUUkFUSU9OLCBQT1BVUF9FTF9USVRMRTMsICJJbml0aWFsaXppbmcuLiIpOworICAgIHN0YXR1cyA9IHBqc3VhX2luaXQoJmNmZywgJmxvZ19jZmcsICZtZWRpYV9jZmcpOworICAgIGlmIChzdGF0dXMgIT0gUEpfU1VDQ0VTUykgeworCUVycm9yKF9UKCJFcnJvciBpbml0aWFsaXppbmcgbGlicmFyeSIpLCBzdGF0dXMpOworCXBqc3VhX2Rlc3Ryb3koKTsKKwlQb3BVcF9IaWRlKFBPUFVQX1JFR0lTVFJBVElPTik7CisJcmV0dXJuIEZBTFNFOworICAgIH0KKworICAgIC8vIENyZWF0ZSBvbmUgVURQIHRyYW5zcG9ydAorICAgIFBvcFVwX01vZGlmeShQT1BVUF9SRUdJU1RSQVRJT04sIFBPUFVQX0VMX1RJVExFMywgIkFkZCB0cmFuc3BvcnQuLiIpOworICAgIHBqc3VhX3RyYW5zcG9ydF9pZCB0cmFuc3BvcnRfaWQ7CisgICAgcGpzdWFfdHJhbnNwb3J0X2NvbmZpZyB1ZHBfY2ZnOworCisgICAgcGpzdWFfdHJhbnNwb3J0X2NvbmZpZ19kZWZhdWx0KCZ1ZHBfY2ZnKTsKKyAgICB1ZHBfY2ZnLnBvcnQgPSAwOworICAgIHN0YXR1cyA9IHBqc3VhX3RyYW5zcG9ydF9jcmVhdGUoUEpTSVBfVFJBTlNQT1JUX1VEUCwKKwkJCQkJJnVkcF9jZmcsICZ0cmFuc3BvcnRfaWQpOworICAgIGlmIChzdGF0dXMgIT0gUEpfU1VDQ0VTUykgeworCUVycm9yKF9UKCJFcnJvciBjcmVhdGluZyBVRFAgdHJhbnNwb3J0IiksIHN0YXR1cyk7CisJcGpzdWFfZGVzdHJveSgpOworCVBvcFVwX0hpZGUoUE9QVVBfUkVHSVNUUkFUSU9OKTsKKwlyZXR1cm4gRkFMU0U7CisgICAgfQorCisgICAgLy8gQWRqdXN0IGNvZGVjcyBwcmlvcml0eQorICAgIHBqX3N0cl90IHRtcDsKKyAgICBwanN1YV9jb2RlY19zZXRfcHJpb3JpdHkocGpfY3N0cigmdG1wLCAiR1NNIiksICAyMDApOworICAgIHBqc3VhX2NvZGVjX3NldF9wcmlvcml0eShwal9jc3RyKCZ0bXAsICJQQ01VIiksIDE5MCk7CisgICAgcGpzdWFfY29kZWNfc2V0X3ByaW9yaXR5KHBqX2NzdHIoJnRtcCwgIlBDTUEiKSwgMTg1KTsKKyAgICBwanN1YV9jb2RlY19zZXRfcHJpb3JpdHkocGpfY3N0cigmdG1wLCAiaUxCQyIpLCAwKTsKKyAgICBwanN1YV9jb2RlY19zZXRfcHJpb3JpdHkocGpfY3N0cigmdG1wLCAic3BlZXgiKSwgMCk7CisgICAgcGpzdWFfY29kZWNfc2V0X3ByaW9yaXR5KHBqX2NzdHIoJnRtcCwgIkwxNiIpLCAwKTsKKworCisgICAgLy8gU3RhcnQhCisgICAgUG9wVXBfTW9kaWZ5KFBPUFVQX1JFR0lTVFJBVElPTiwgUE9QVVBfRUxfVElUTEUzLCAiU3RhcnRpbmcuLiIpOworICAgIHN0YXR1cyA9IHBqc3VhX3N0YXJ0KCk7CisgICAgaWYgKHN0YXR1cyAhPSBQSl9TVUNDRVNTKSB7CisJRXJyb3IoX1QoIkVycm9yIHN0YXJ0aW5nIGxpYnJhcnkiKSwgc3RhdHVzKTsKKwlwanN1YV9kZXN0cm95KCk7CisJUG9wVXBfSGlkZShQT1BVUF9SRUdJU1RSQVRJT04pOworCXJldHVybiBGQUxTRTsKKyAgICB9CisKKyAgICAvLyBBZGQgYWNjb3VudAorICAgIFBvcFVwX01vZGlmeShQT1BVUF9SRUdJU1RSQVRJT04sIFBPUFVQX0VMX1RJVExFMywgIkFkZGluZyBhY2NvdW50Li4iKTsKKyAgICBjaGFyIGRvbWFpbls4MF0sIHVzZXJuYW1lWzgwXSwgcGFzc3dkWzgwXTsKKyAgICBjaGFyIGlkWzgwXSwgcmVnX3VyaVs4MF07CisgICAgcGpzdWFfYWNjX2NvbmZpZyBhY2NfY2ZnOworCisgICAgcGpfdW5pY29kZV90b19hbnNpKChMUENUU1RSKW1fQ2ZnLm1fRG9tYWluLCBtX0NmZy5tX0RvbWFpbi5HZXRMZW5ndGgoKSwKKwkJICAgICAgIGRvbWFpbiwgc2l6ZW9mKGRvbWFpbikpOworICAgIHBqX3VuaWNvZGVfdG9fYW5zaSgoTFBDVFNUUiltX0NmZy5tX1VzZXIsIG1fQ2ZnLm1fVXNlci5HZXRMZW5ndGgoKSwKKwkJICAgICAgIHVzZXJuYW1lLCBzaXplb2YodXNlcm5hbWUpKTsKKyAgICBwal91bmljb2RlX3RvX2Fuc2koKExQQ1RTVFIpbV9DZmcubV9QYXNzd29yZCwgbV9DZmcubV9QYXNzd29yZC5HZXRMZW5ndGgoKSwKKwkJICAgICAgIHBhc3N3ZCwgc2l6ZW9mKHBhc3N3ZCkpOworCisgICAgc25wcmludGYoaWQsIHNpemVvZihpZCksICI8c2lwOiVzQCVzPiIsIHVzZXJuYW1lLCBkb21haW4pOworICAgIHNucHJpbnRmKHJlZ191cmksIHNpemVvZihyZWdfdXJpKSwgInNpcDolcyIsIGRvbWFpbik7CisKKyAgICBwanN1YV9hY2NfY29uZmlnX2RlZmF1bHQoJmFjY19jZmcpOworICAgIGFjY19jZmcuaWQgPSBwal9zdHIoaWQpOworICAgIGFjY19jZmcucmVnX3VyaSA9IHBqX3N0cihyZWdfdXJpKTsKKyAgICBhY2NfY2ZnLmNyZWRfY291bnQgPSAxOworICAgIGFjY19jZmcuY3JlZF9pbmZvWzBdLnNjaGVtZSA9IHBqX3N0cigiRGlnZXN0Iik7CisgICAgYWNjX2NmZy5jcmVkX2luZm9bMF0ucmVhbG0gPSBwal9zdHIoIioiKTsKKyAgICBhY2NfY2ZnLmNyZWRfaW5mb1swXS51c2VybmFtZSA9IHBqX3N0cih1c2VybmFtZSk7CisgICAgYWNjX2NmZy5jcmVkX2luZm9bMF0uZGF0YV90eXBlID0gMDsKKyAgICBhY2NfY2ZnLmNyZWRfaW5mb1swXS5kYXRhID0gcGpfc3RyKHBhc3N3ZCk7CisKKyAgICBhY2NfY2ZnLnVzZV9zcnRwID0gKG1fQ2ZnLm1fVXNlU3R1biA/IFBKTUVESUFfU1JUUF9PUFRJT05BTCA6IFBKTUVESUFfU1JUUF9ESVNBQkxFRCk7CisgICAgYWNjX2NmZy5zcnRwX3NlY3VyZV9zaWduYWxpbmcgPSAwOworICAgIGFjY19jZmcucHVibGlzaF9lbmFibGVkID0gbV9DZmcubV9Vc2VQdWJsaXNoOworICAgIAorICAgIHN0YXR1cyA9IHBqc3VhX2FjY19hZGQoJmFjY19jZmcsIFBKX1RSVUUsICZtX1Bqc3VhQWNjSWQpOworICAgIGlmIChzdGF0dXMgIT0gUEpfU1VDQ0VTUykgeworCUVycm9yKF9UKCJJbnZhbGlkIGFjY291bnQgc2V0dGluZ3MiKSwgc3RhdHVzKTsKKwlwanN1YV9kZXN0cm95KCk7CisJUG9wVXBfSGlkZShQT1BVUF9SRUdJU1RSQVRJT04pOworCXJldHVybiBGQUxTRTsKKyAgICB9CisKKyAgICBDU3RyaW5nIGFjY190ZXh0ID0gbV9DZmcubV9Vc2VyICsgX1QoIkAiKSArIG1fQ2ZnLm1fRG9tYWluOworICAgIG1fQWNjSWQuU2V0V2luZG93VGV4dChhY2NfdGV4dCk7CisKKyAgICBQb3BVcF9Nb2RpZnkoUE9QVVBfUkVHSVNUUkFUSU9OLCBQT1BVUF9FTF9USVRMRTEsIGFjY190ZXh0KTsKKyAgICBQb3BVcF9Nb2RpZnkoUE9QVVBfUkVHSVNUUkFUSU9OLCBQT1BVUF9FTF9USVRMRTIsICJSZWdpc3RlcmluZy4uIik7CisgICAgUG9wVXBfTW9kaWZ5KFBPUFVQX1JFR0lTVFJBVElPTiwgUE9QVVBfRUxfVElUTEUzLCAiIik7CisKKyAgICBTZXRUaW1lcihUSU1FUl9JRCwgMTAwLCBOVUxMKTsKKyAgICByZXR1cm4gVFJVRTsKK30KKworCit2b2lkIENQb2NrZXRQSkRsZzo6UG9wVXBfU2hvdyggUG9wVXBUeXBlIHR5cGUsIAorCQkJICAgICAgICBjb25zdCBDU3RyaW5nJiB0aXRsZTEsCisJCQkJY29uc3QgQ1N0cmluZyYgdGl0bGUyLAorCQkJCWNvbnN0IENTdHJpbmcmIHRpdGxlMywKKwkJCQljb25zdCBDU3RyaW5nJiBidG4xLAorCQkJCWNvbnN0IENTdHJpbmcmIGJ0bjIsCisJCQkJdW5zaWduZWQgdXNlckRhdGEpCit7CisgICAgaWYgKCFtX1BvcFVwU3RhdGVbdHlwZV0pCisJKyttX1BvcFVwQ291bnQ7CisKKyAgICBtX1BvcFVwU3RhdGVbdHlwZV0gPSBUUlVFOworCisgICAgbV9Qb3BVcENvbnRlbnRbdHlwZV0ubV9UaXRsZTEgPSB0aXRsZTE7CisgICAgbV9Qb3BVcENvbnRlbnRbdHlwZV0ubV9UaXRsZTIgPSB0aXRsZTI7CisgICAgbV9Qb3BVcENvbnRlbnRbdHlwZV0ubV9UaXRsZTMgPSB0aXRsZTM7CisgICAgbV9Qb3BVcENvbnRlbnRbdHlwZV0ubV9CdG4xID0gYnRuMTsKKyAgICBtX1BvcFVwQ29udGVudFt0eXBlXS5tX0J0bjIgPSBidG4yOworCisgICAgbV9Qb3BVcC0+U2V0Q29udGVudChtX1BvcFVwQ29udGVudFt0eXBlXSk7CisgICAgbV9Qb3BVcC0+U2hvdygpOworfQorCit2b2lkIENQb2NrZXRQSkRsZzo6UG9wVXBfTW9kaWZ5KFBvcFVwVHlwZSB0eXBlLAorCQkJCVBvcFVwRWxlbWVudCBlbCwKKwkJCQljb25zdCBDU3RyaW5nJiB0ZXh0KQoreworICAgIHN3aXRjaCAoZWwpIHsKKyAgICBjYXNlIFBPUFVQX0VMX1RJVExFMToKKwltX1BvcFVwQ29udGVudFt0eXBlXS5tX1RpdGxlMSA9IHRleHQ7CisJYnJlYWs7CisgICAgY2FzZSBQT1BVUF9FTF9USVRMRTI6CisJbV9Qb3BVcENvbnRlbnRbdHlwZV0ubV9UaXRsZTIgPSB0ZXh0OworCWJyZWFrOworICAgIGNhc2UgUE9QVVBfRUxfVElUTEUzOgorCW1fUG9wVXBDb250ZW50W3R5cGVdLm1fVGl0bGUzID0gdGV4dDsKKwlicmVhazsKKyAgICBjYXNlIFBPUFVQX0VMX0JVVFRPTjE6CisJbV9Qb3BVcENvbnRlbnRbdHlwZV0ubV9CdG4xID0gdGV4dDsKKwlicmVhazsKKyAgICBjYXNlIFBPUFVQX0VMX0JVVFRPTjI6CisJbV9Qb3BVcENvbnRlbnRbdHlwZV0ubV9CdG4xID0gdGV4dDsKKwlicmVhazsKKyAgICB9CisKKyAgICBtX1BvcFVwLT5TZXRDb250ZW50KG1fUG9wVXBDb250ZW50W3R5cGVdKTsKK30KKwordm9pZCBDUG9ja2V0UEpEbGc6OlBvcFVwX0hpZGUoUG9wVXBUeXBlIHR5cGUpCit7CisgICAgaWYgKG1fUG9wVXBTdGF0ZVt0eXBlXSkKKwktLW1fUG9wVXBDb3VudDsKKworICAgIG1fUG9wVXBTdGF0ZVt0eXBlXSA9IEZBTFNFOworCisgICAgaWYgKG1fUG9wVXBDb3VudCA9PSAwKSB7CisJbV9Qb3BVcC0+SGlkZSgpOworCVVwZGF0ZVdpbmRvdygpOworICAgIH0gZWxzZSB7CisJZm9yIChpbnQgaT1QT1BVUF9NQVhfVFlQRS0xOyBpPj0wOyAtLWkpIHsKKwkgICAgaWYgKG1fUG9wVXBTdGF0ZVtpXSkgeworCQltX1BvcFVwLT5TZXRDb250ZW50KG1fUG9wVXBDb250ZW50W2ldKTsKKwkJYnJlYWs7CisJICAgIH0KKwl9CisgICAgfQorfQorCit2b2lkIENQb2NrZXRQSkRsZzo6T25DYWxsU3RhdGUoKQoreworICAgIHBqc3VhX2NhbGxfaW5mbyBjaTsKKworICAgIHBqc3VhX2NhbGxfZ2V0X2luZm8oMCwgJmNpKTsKKyAgICAKKyAgICBzd2l0Y2ggKGNpLnN0YXRlKSB7CisgICAgY2FzZSBQSlNJUF9JTlZfU1RBVEVfTlVMTDoJICAgIC8qKjwgQmVmb3JlIElOVklURSBpcyBzZW50IG9yIHJlY2VpdmVkICAqLworCWJyZWFrOworICAgIGNhc2UgUEpTSVBfSU5WX1NUQVRFX0NBTExJTkc6ICAgLyoqPCBBZnRlciBJTlZJVEUgaXMgc2VudAkJICAgICovCisJUG9wVXBfU2hvdyhQT1BVUF9DQUxMLCAiQ2FsbGluZy4uIiwgY2kucmVtb3RlX2luZm8ucHRyLCAiIiwKKwkJICAgIiIsICJIYW5ndXAiLCAwKTsKKwlicmVhazsKKyAgICBjYXNlIFBKU0lQX0lOVl9TVEFURV9JTkNPTUlORzogIC8qKjwgQWZ0ZXIgSU5WSVRFIGlzIHJlY2VpdmVkLgkgICAgKi8KKwlQb3BVcF9TaG93KFBPUFVQX0NBTEwsICJJbmNvbWluZyBjYWxsLi4iLCBjaS5yZW1vdGVfaW5mby5wdHIsICIiLAorCQkgICAiQW5zd2VyIiwgIkhhbmd1cCIsIDApOworCXBqc3VhX2NhbGxfYW5zd2VyKDAsIDE4MCwgTlVMTCwgTlVMTCk7CisJYnJlYWs7CisgICAgY2FzZSBQSlNJUF9JTlZfU1RBVEVfRUFSTFk6CSAgICAvKio8IEFmdGVyIHJlc3BvbnNlIHdpdGggVG8gdGFnLgkgICAgKi8KKyAgICBjYXNlIFBKU0lQX0lOVl9TVEFURV9DT05ORUNUSU5HOi8qKjwgQWZ0ZXIgMnh4IGlzIHNlbnQvcmVjZWl2ZWQuCSAgICAqLworICAgIGNhc2UgUEpTSVBfSU5WX1NUQVRFX0NPTkZJUk1FRDogIC8qKjwgQWZ0ZXIgQUNLIGlzIHNlbnQvcmVjZWl2ZWQuCSAgICAqLworCXsKKwkgICAgQ1N0cmluZyBzdGF0ZVRleHQgPSBjaS5zdGF0ZV90ZXh0LnB0cjsKKwkgICAgUG9wVXBfTW9kaWZ5KFBPUFVQX0NBTEwsIFBPUFVQX0VMX1RJVExFMywgc3RhdGVUZXh0KTsKKwl9CisJYnJlYWs7CisgICAgY2FzZSBQSlNJUF9JTlZfU1RBVEVfRElTQ09OTkVDVEVEOi8qKjwgU2Vzc2lvbiBpcyB0ZXJtaW5hdGVkLgkgICAgKi8KKwlQb3BVcF9Nb2RpZnkoUE9QVVBfQ0FMTCwgUE9QVVBfRUxfVElUTEUzLCAiRGlzY29ubmVjdGVkIik7CisJUG9wVXBfSGlkZShQT1BVUF9DQUxMKTsKKwlicmVhazsKKyAgICB9ICAgIAorfQorCit2b2lkIENQb2NrZXRQSkRsZzo6b25fY2FsbF9zdGF0ZShwanN1YV9jYWxsX2lkIGNhbGxfaWQsIHBqc2lwX2V2ZW50ICplKQoreworICAgIHRoZURsZy0+T25DYWxsU3RhdGUoKTsKK30KKwordm9pZCBDUG9ja2V0UEpEbGc6Om9uX2NhbGxfbWVkaWFfc3RhdGUocGpzdWFfY2FsbF9pZCBjYWxsX2lkKQoreworICAgIHBqc3VhX2NhbGxfaW5mbyBjYWxsX2luZm87CisKKyAgICBwanN1YV9jYWxsX2dldF9pbmZvKGNhbGxfaWQsICZjYWxsX2luZm8pOworICAgIGlmIChjYWxsX2luZm8ubWVkaWFfc3RhdHVzID09IFBKU1VBX0NBTExfTUVESUFfQUNUSVZFKSB7CisJcGpzdWFfY29uZl9jb25uZWN0KGNhbGxfaW5mby5jb25mX3Nsb3QsIDApOworCXBqc3VhX2NvbmZfY29ubmVjdCgwLCBjYWxsX2luZm8uY29uZl9zbG90KTsKKyAgICB9Cit9CisKK3ZvaWQgQ1BvY2tldFBKRGxnOjpvbl9pbmNvbWluZ19jYWxsKHBqc3VhX2FjY19pZCBhY2NfaWQsIHBqc3VhX2NhbGxfaWQgY2FsbF9pZCwKKwkJCQkgICAgcGpzaXBfcnhfZGF0YSAqcmRhdGEpCit7Cit9CisKK3ZvaWQgQ1BvY2tldFBKRGxnOjpPblJlZ1N0YXRlKCkKK3sKKyAgICBwanN1YV9hY2NfaW5mbyBhaTsKKyAgICBwanN1YV9hY2NfZ2V0X2luZm8obV9QanN1YUFjY0lkLCAmYWkpOworCisgICAgQ1N0cmluZyBhY2NfdGV4dCA9IG1fQ2ZnLm1fVXNlciArIF9UKCJAIikgKyBtX0NmZy5tX0RvbWFpbjsKKworICAgIGlmIChhaS5leHBpcmVzPjAgJiYgYWkuc3RhdHVzLzEwMD09MikgeworCS8qIFJlZ2lzdHJhdGlvbiBzdWNjZXNzICovCisJSEJJVE1BUCBvbGQgPSBtX0J0bkFjYy5TZXRCaXRtYXAoOjpMb2FkQml0bWFwKEFmeEdldEluc3RhbmNlSGFuZGxlKCksIE1BS0VJTlRSRVNPVVJDRShJREJfT05MSU5FKSkgKTsKKwlhY2NfdGV4dCArPSAiIChPSykiOworCW1fQWNjSWQuU2V0V2luZG93VGV4dChhY2NfdGV4dCk7CisJUG9wVXBfSGlkZShQT1BVUF9SRUdJU1RSQVRJT04pOworICAgIH0gZWxzZSBpZiAoYWkuc3RhdHVzLzEwMCAhPSAyKSB7CisJYWNjX3RleHQgKz0gIiAoZXJyKSI7CisJRXJyb3IoX1QoIlNJUCByZWdpc3RyYXRpb24gZXJyb3IiKSwgUEpTSVBfRVJSTk9fRlJPTV9TSVBfU1RBVFVTKGFpLnN0YXR1cykpOworCW1fQWNjSWQuU2V0V2luZG93VGV4dChhY2NfdGV4dCk7CisJUG9wVXBfSGlkZShQT1BVUF9SRUdJU1RSQVRJT04pOworICAgIH0KK30KKwordm9pZCBDUG9ja2V0UEpEbGc6Om9uX3JlZ19zdGF0ZShwanN1YV9hY2NfaWQgYWNjX2lkKQoreworICAgIHRoZURsZy0+T25SZWdTdGF0ZSgpOworfQorCit2b2lkIENQb2NrZXRQSkRsZzo6b25fYnVkZHlfc3RhdGUocGpzdWFfYnVkZHlfaWQgYnVkZHlfaWQpCit7CisgICAgdGhlRGxnLT5SZWRyYXdCdWRkeUxpc3QoKTsKK30KKwordm9pZCBDUG9ja2V0UEpEbGc6Om9uX3BhZ2VyKHBqc3VhX2NhbGxfaWQgY2FsbF9pZCwgY29uc3QgcGpfc3RyX3QgKmZyb20sIAorCQkJICAgIGNvbnN0IHBqX3N0cl90ICp0bywgY29uc3QgcGpfc3RyX3QgKmNvbnRhY3QsCisJCQkgICAgY29uc3QgcGpfc3RyX3QgKm1pbWVfdHlwZSwgY29uc3QgcGpfc3RyX3QgKnRleHQpCit7Cit9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBDUG9ja2V0UEpEbGcgbWVzc2FnZSBoYW5kbGVycworCitCT09MIENQb2NrZXRQSkRsZzo6T25Jbml0RGlhbG9nKCkKK3sKKwlDRGlhbG9nOjpPbkluaXREaWFsb2coKTsKKworCS8vIFNldCB0aGUgaWNvbiBmb3IgdGhpcyBkaWFsb2cuICBUaGUgZnJhbWV3b3JrIGRvZXMgdGhpcyBhdXRvbWF0aWNhbGx5CisJLy8gIHdoZW4gdGhlIGFwcGxpY2F0aW9uJ3MgbWFpbiB3aW5kb3cgaXMgbm90IGEgZGlhbG9nCisJU2V0SWNvbihtX2hJY29uLCBUUlVFKTsJCQkvLyBTZXQgYmlnIGljb24KKwlTZXRJY29uKG1faEljb24sIEZBTFNFKTsJCS8vIFNldCBzbWFsbCBpY29uCisJCisJQ2VudGVyV2luZG93KEdldERlc2t0b3BXaW5kb3coKSk7CS8vIGNlbnRlciB0byB0aGUgaHBjIHNjcmVlbgorIAorCS8vIFRPRE86IEFkZCBleHRyYSBpbml0aWFsaXphdGlvbiBoZXJlCisJCisJbV9DZmcuTG9hZFJlZ2lzdHJ5KCk7CisJLy9TaG93V2luZG93KFNXX1NIT1cpOworCW1fQWNjSWQuU2V0V2luZG93VGV4dChtX0NmZy5tX1VzZXIpOworCisJQ0ltYWdlTGlzdCAqaWwgPSBuZXcgQ0ltYWdlTGlzdDsKKwlWRVJJRlkoaWwtPkNyZWF0ZSgxNiwgMTYsIElMQ19DT0xPUnxJTENfTUFTSywgMiwgNCkpOworCisJQ0JpdG1hcCAqYm1wID0gbmV3IENCaXRtYXA7CisJYm1wLT5Mb2FkQml0bWFwKE1BS0VJTlRSRVNPVVJDRShJREJfQkxBTkspKTsKKwlpbC0+QWRkKGJtcCwgUkdCKDI1NSwyNTUsMjU1KSk7CisJYm1wID0gbmV3IENCaXRtYXA7CisJYm1wLT5Mb2FkQml0bWFwKE1BS0VJTlRSRVNPVVJDRShJREJfT05MSU5FKSk7CisJaWwtPkFkZChibXAsIFJHQigyNTUsMjU1LDI1NSkpOworCQorCW1fQnVkZHlMaXN0LlNldEltYWdlTGlzdChpbCwgTFZTSUxfU01BTEwpOworCisJaWYgKG1fQ2ZnLm1fRG9tYWluLkdldExlbmd0aCgpPT0wIHx8IFJlc3RhcnQoKSA9PSBGQUxTRSkgeworCSAgICBmb3IgKDs7KSB7CisJCUNTZXR0aW5nc0RsZyBkbGcobV9DZmcpOworCQlpZiAoZGxnLkRvTW9kYWwoKSAhPSBJRE9LKSB7CisJCSAgICBFbmREaWFsb2coSURPSyk7CisJCSAgICByZXR1cm4gVFJVRTsKKwkJfQorCisJCW1fQ2ZnLlNhdmVSZWdpc3RyeSgpOworCisJCWlmIChSZXN0YXJ0KCkpCisJCSAgICBicmVhazsKKwkgICAgfQorCX0KKworCVJlZHJhd0J1ZGR5TGlzdCgpOworCXJldHVybiBUUlVFOyAgLy8gcmV0dXJuIFRSVUUgIHVubGVzcyB5b3Ugc2V0IHRoZSBmb2N1cyB0byBhIGNvbnRyb2wKK30KKworCisKK3ZvaWQgQ1BvY2tldFBKRGxnOjpPbkJ0bkFjYygpIAoreworICAgIENNZW51IG1lbnU7CisgICAgVkVSSUZZKG1lbnUuTG9hZE1lbnUoSURSX0FDQ19NRU5VKSk7CisgICAgQ01lbnUqIHBQb3B1cCA9IG1lbnUuR2V0U3ViTWVudSgwKTsKKyAgICBBU1NFUlQocFBvcHVwICE9IE5VTEwpOworCisgICAgUkVDVCByOworICAgIG1fQnRuQWNjLkdldFdpbmRvd1JlY3QoJnIpOworICAgIHBQb3B1cC0+VHJhY2tQb3B1cE1lbnUoVFBNX0xFRlRBTElHTiwgci5sZWZ0KzQsIHIudG9wKzQsIHRoaXMpOworfQorCit2b2lkIENQb2NrZXRQSkRsZzo6T25CdG5BY3Rpb24oKSAKK3sKKyAgICBDTWVudSBtZW51OworICAgIFZFUklGWShtZW51LkxvYWRNZW51KElEUl9VUklfTUVOVSkpOworICAgIENNZW51KiBwUG9wdXAgPSBtZW51LkdldFN1Yk1lbnUoMCk7CisgICAgQVNTRVJUKHBQb3B1cCAhPSBOVUxMKTsKKworICAgIFJFQ1QgcjsKKyAgICB0aGlzLT5tX0J0blVybEFjdGlvbi5HZXRXaW5kb3dSZWN0KCZyKTsKKyAgICBwUG9wdXAtPlRyYWNrUG9wdXBNZW51KFRQTV9MRUZUQUxJR04sIHIubGVmdCs0LCByLnRvcCs0LCB0aGlzKTsKK30KKwordm9pZCBDUG9ja2V0UEpEbGc6Ok9uU2V0dGluZ3MoKSAKK3sKKyAgICBmb3IgKDs7KSB7CisJQ1NldHRpbmdzRGxnIGRsZyhtX0NmZyk7CisJaWYgKGRsZy5Eb01vZGFsKCkgIT0gSURPSykgeworCSAgICByZXR1cm47CisJfQorCisJbV9DZmcuU2F2ZVJlZ2lzdHJ5KCk7CisKKwlpZiAoUmVzdGFydCgpKQorCSAgICBicmVhazsKKyAgICB9Cit9CisKK3ZvaWQgQ1BvY2tldFBKRGxnOjpPbk9LKCkKK3sKKyAgICBpZiAoQWZ4TWVzc2FnZUJveChfVCgiUXVpdCBQb2NrZXRQSj8iKSwgTUJfWUVTTk8pPT1JRFlFUykgeworCUtpbGxUaW1lcihUSU1FUl9JRCk7CisJUG9wVXBfU2hvdyhQT1BVUF9SRUdJU1RSQVRJT04sICIiLCAiU2h1dHRpbmcgZG93bi4uIiwgIiIsICIiLCAiIiwgMCk7CisJcGpzdWFfZGVzdHJveSgpOworCUNEaWFsb2c6Ok9uT0soKTsKKwlQb3BVcF9IaWRlKFBPUFVQX1JFR0lTVFJBVElPTik7CisJbV9DZmcuU2F2ZVJlZ2lzdHJ5KCk7CisJcmV0dXJuOworICAgIH0KK30KKwordm9pZCBDUG9ja2V0UEpEbGc6Ok9uVGltZXIoVUlOVCBuSURFdmVudCkgCit7CisgICAgcGpzdWFfaGFuZGxlX2V2ZW50cygxMCk7CisgICAgQ0RpYWxvZzo6T25UaW1lcihuSURFdmVudCk7Cit9CisKK2ludCAgQ1BvY2tldFBKRGxnOjpGaW5kQnVkZHlJblBqc3VhKGNvbnN0IENTdHJpbmcgJlVyaSkKK3sKKyAgICBjaGFyIHVyaVs4MF07CisgICAgcGpzdWFfYnVkZHlfaWQgIGlkWzEyOF07CisgICAgdW5zaWduZWQgaSwgY291bnQgPSBQSl9BUlJBWV9TSVpFKGlkKTsKKworICAgIGlmIChwanN1YV9lbnVtX2J1ZGRpZXMoaWQsICZjb3VudCkgIT0gUEpfU1VDQ0VTUykKKwlyZXR1cm4gUEpTVUFfSU5WQUxJRF9JRDsKKyAgICBpZiAoY291bnQ9PTApCisJcmV0dXJuIFBKU1VBX0lOVkFMSURfSUQ7CisKKyAgICBwal91bmljb2RlX3RvX2Fuc2koKExQQ1RTVFIpVXJpLCBVcmkuR2V0TGVuZ3RoKCksIHVyaSwgc2l6ZW9mKHVyaSkpOworCisgICAgZm9yIChpPTA7IGk8Y291bnQ7ICsraSkgeworCXBqc3VhX2J1ZGR5X2luZm8gYmk7CisJcGpzdWFfYnVkZHlfZ2V0X2luZm8oaWRbaV0sICZiaSk7CisJaWYgKHBqX3N0cmNtcDIoJmJpLnVyaSwgdXJpKT09MCkKKwkgICAgcmV0dXJuIGk7CisgICAgfQorCisgICAgcmV0dXJuIFBKU1VBX0lOVkFMSURfSUQ7Cit9CisKK2ludCAgQ1BvY2tldFBKRGxnOjpGaW5kQnVkZHlJbkNmZyhjb25zdCBDU3RyaW5nICZ1cmkpCit7CisgICAgaW50IGk7CisgICAgZm9yIChpPTA7IGk8bV9DZmcubV9CdWRkeUxpc3QuR2V0U2l6ZSgpOyArK2kpIHsKKwlpZiAobV9DZmcubV9CdWRkeUxpc3QuR2V0QXQoMCkgPT0gdXJpKSB7CisJICAgIHJldHVybiBpOworCX0KKyAgICB9CisgICAgcmV0dXJuIC0xOworfQorCit2b2lkIENQb2NrZXRQSkRsZzo6UmVkcmF3QnVkZHlMaXN0KCkKK3sKKyAgICBpbnQgaTsKKworICAgIG1fQnVkZHlMaXN0LkRlbGV0ZUFsbEl0ZW1zKCk7CisKKyAgICBmb3IgKGk9MDsgaTxtX0NmZy5tX0J1ZGR5TGlzdC5HZXRTaXplKCk7ICsraSkgeworCWludCBpc09ubGluZTsKKwlpbnQgaWQ7CisKKwlpZCA9IEZpbmRCdWRkeUluUGpzdWEobV9DZmcubV9CdWRkeUxpc3QuR2V0QXQoaSkpOworCWlmIChpZCAhPSBQSlNVQV9JTlZBTElEX0lEKSB7CisJICAgIHBqc3VhX2J1ZGR5X2luZm8gYmk7CisJICAgIHBqc3VhX2J1ZGR5X2dldF9pbmZvKGlkLCAmYmkpOworCSAgICBpc09ubGluZSA9IChiaS5zdGF0dXMgPT0gUEpTVUFfQlVERFlfU1RBVFVTX09OTElORSk7CisJfSBlbHNlIHsKKwkgICAgaXNPbmxpbmUgPSAwOworCX0KKworCUxWSVRFTSBsdmk7CisJbWVtc2V0KCZsdmksIDAsIHNpemVvZihsdmkpKTsKKwlsdmkubWFzayA9IExWSUZfVEVYVCAgfCBMVklGX0lNQUdFOworCWx2aS5pSXRlbSA9IGk7CisJbHZpLmlJbWFnZSA9IGlzT25saW5lOworCWx2aS5wc3pUZXh0ID0gKExQVFNUUikoTFBDVFNUUiltX0NmZy5tX0J1ZGR5TGlzdC5HZXRBdChpKTsKKworCW1fQnVkZHlMaXN0Lkluc2VydEl0ZW0oJmx2aSk7CisgICAgfQorfQorCit2b2lkIENQb2NrZXRQSkRsZzo6T25VcmlDYWxsKCkgCit7CisgICAgY2hhciB0bXBbMTIwXTsKKyAgICBDU3RyaW5nIHVyaTsKKyAgICBwal9zdGF0dXNfdCBzdGF0dXM7CisKKyAgICBtX1VybC5HZXRXaW5kb3dUZXh0KHVyaSk7CisgICAgcGpfdW5pY29kZV90b19hbnNpKChMUENUU1RSKXVyaSwgdXJpLkdldExlbmd0aCgpLCB0bXAsIHNpemVvZih0bXApKTsKKyAgICBpZiAoKHN0YXR1cz1wanN1YV92ZXJpZnlfc2lwX3VybCh0bXApKSAhPSBQSl9TVUNDRVNTKSB7CisJRXJyb3IoIlRoZSBVUkwgaXMgbm90IHZhbGlkIFNJUCBVUkwiLCBzdGF0dXMpOworCXJldHVybjsKKyAgICB9CisKKyAgICBwal9zdHJfdCBkZXN0X3VyaSA9IHBqX3N0cih0bXApOworICAgIHBqc3VhX2NhbGxfaWQgY2FsbF9pZDsKKworICAgIHN0YXR1cyA9IHBqc3VhX2NhbGxfbWFrZV9jYWxsKG1fUGpzdWFBY2NJZCwgJmRlc3RfdXJpLCAwLCBOVUxMLCBOVUxMLCAmY2FsbF9pZCk7CisKKyAgICBpZiAoc3RhdHVzICE9IFBKX1NVQ0NFU1MpCisJRXJyb3IoIlVuYWJsZSB0byBtYWtlIGNhbGwiLCBzdGF0dXMpOworfQorCit2b2lkIENQb2NrZXRQSkRsZzo6T25VcmlBZGRCdWRkeSgpIAoreworICAgIGludCBpOworICAgIGNoYXIgdG1wWzEyMF07CisgICAgQ1N0cmluZyB1cmk7CisgICAgcGpfc3RhdHVzX3Qgc3RhdHVzOworCisgICAgbV9VcmwuR2V0V2luZG93VGV4dCh1cmkpOworICAgIHBqX3VuaWNvZGVfdG9fYW5zaSgoTFBDVFNUUil1cmksIHVyaS5HZXRMZW5ndGgoKSwgdG1wLCBzaXplb2YodG1wKSk7CisgICAgaWYgKChzdGF0dXM9cGpzdWFfdmVyaWZ5X3NpcF91cmwodG1wKSkgIT0gUEpfU1VDQ0VTUykgeworCUVycm9yKCJUaGUgVVJMIGlzIG5vdCB2YWxpZCBTSVAgVVJMIiwgc3RhdHVzKTsKKwlyZXR1cm47CisgICAgfQorCisgICAgZm9yIChpPTA7IGk8bV9DZmcubV9CdWRkeUxpc3QuR2V0U2l6ZSgpOyArK2kpIHsKKwlpZiAobV9DZmcubV9CdWRkeUxpc3QuR2V0QXQoMCkgPT0gdXJpKSB7CisJICAgIEFmeE1lc3NhZ2VCb3goX1QoIlRoZSBVUkkgaXMgYWxyZWFkeSBpbiB0aGUgYnVkZHkgbGlzdCIpKTsKKwkgICAgcmV0dXJuOworCX0KKyAgICB9CisKKyAgICBtX0NmZy5tX0J1ZGR5TGlzdC5BZGQodXJpKTsKKyAgICBSZWRyYXdCdWRkeUxpc3QoKTsKK30KKwordm9pZCBDUG9ja2V0UEpEbGc6Ok9uVXJpRGVsQnVkZHkoKSAKK3sKKyAgICBDU3RyaW5nIHVyaTsKKworICAgIG1fVXJsLkdldFdpbmRvd1RleHQodXJpKTsKKyAgICBpbnQgaSA9IEZpbmRCdWRkeUluQ2ZnKHVyaSk7CisgICAgaWYgKGk8MCkgeworCS8qIEJ1ZGR5IG5vdCBmb3VuZCAqLworCXJldHVybjsKKyAgICB9CisKKyAgICBtX0NmZy5tX0J1ZGR5TGlzdC5SZW1vdmVBdChpKTsKKyAgICBSZWRyYXdCdWRkeUxpc3QoKTsKKyAgICBBZnhNZXNzYWdlQm94KF9UKCJCdWRkeSAiICsgdXJpICsgIiBkZWxldGVkIikpOworfQorCit2b2lkIENQb2NrZXRQSkRsZzo6T25BY2NPbmxpbmUoKSAKK3sKKyAgICBwanN1YV9hY2Nfc2V0X29ubGluZV9zdGF0dXMobV9QanN1YUFjY0lkLCBQSl9UUlVFKTsKKyAgICBtX0J0bkFjYy5TZXRCaXRtYXAoOjpMb2FkQml0bWFwKEFmeEdldEluc3RhbmNlSGFuZGxlKCksIE1BS0VJTlRSRVNPVVJDRShJREJfT05MSU5FKSkgKTsKK30KKwordm9pZCBDUG9ja2V0UEpEbGc6Ok9uQWNjSW52aXNpYmxlKCkgCit7CisgICAgcGpzdWFfYWNjX3NldF9vbmxpbmVfc3RhdHVzKG1fUGpzdWFBY2NJZCwgUEpfRkFMU0UpOworICAgIG1fQnRuQWNjLlNldEJpdG1hcCg6OkxvYWRCaXRtYXAoQWZ4R2V0SW5zdGFuY2VIYW5kbGUoKSwgTUFLRUlOVFJFU09VUkNFKElEQl9JTlZJU0lCTEUpKSApOworfQorCit2b2lkIENQb2NrZXRQSkRsZzo6T25Qb3BVcEJ1dHRvbihpbnQgYnRuTm8pCit7CisgICAgaWYgKGJ0bk5vID09IDEpIHsKKwlwanN1YV9jYWxsX2Fuc3dlcigwLCAyMDAsIE5VTEwsIDApOworCVBvcFVwX01vZGlmeShQT1BVUF9DQUxMLCBQT1BVUF9FTF9CVVRUT04xLCAiIik7CisgICAgfSBlbHNlIGlmIChidG5ObyA9PSAyKSB7CisJLy8gSGFuZ3VwIGJ1dHRvbgorCVBvcFVwX01vZGlmeShQT1BVUF9DQUxMLCBQT1BVUF9FTF9USVRMRTIsICJIYW5nIHVwLi4iKTsKKwlQb3BVcF9Nb2RpZnkoUE9QVVBfQ0FMTCwgUE9QVVBfRUxfVElUTEUzLCAiIik7CisJcGpzdWFfY2FsbF9oYW5ndXAoMCwgUEpTSVBfU0NfREVDTElORSwgMCwgMCk7CisgICAgfQorfQorCit2b2lkIENQb2NrZXRQSkRsZzo6T25DbGlja0J1ZGR5TGlzdChOTUhEUiogcE5NSERSLCBMUkVTVUxUKiBwUmVzdWx0KSAKK3sKKyAgICBQT1NJVElPTiBwb3MgPSBtX0J1ZGR5TGlzdC5HZXRGaXJzdFNlbGVjdGVkSXRlbVBvc2l0aW9uKCk7CisgICAgaWYgKHBvcyAhPSBOVUxMKSB7CisJaW50IGlJdGVtID0gbV9CdWRkeUxpc3QuR2V0TmV4dFNlbGVjdGVkSXRlbShwb3MpOworCUNTdHJpbmcgdXJpID0gbV9CdWRkeUxpc3QuR2V0SXRlbVRleHQoaUl0ZW0sIDApOworCW1fVXJsLlNldFdpbmRvd1RleHQodXJpKTsKKyAgICB9CisgICAgKnBSZXN1bHQgPSAwOworfQpkaWZmIC0tZ2l0IGEvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovUG9ja2V0UEpEbGcuaCBiL3Bqc2lwLWFwcHMvc3JjL3BvY2tldHBqL1BvY2tldFBKRGxnLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOThiZWQ1NwotLS0gL2Rldi9udWxsCisrKyBiL3Bqc2lwLWFwcHMvc3JjL3BvY2tldHBqL1BvY2tldFBKRGxnLmgKQEAgLTAsMCArMSwxMjcgQEAKKy8vIFBvY2tldFBKRGxnLmggOiBoZWFkZXIgZmlsZQorLy8KKworI2lmICFkZWZpbmVkKEFGWF9QT0NLRVRQSkRMR19IX19ERjVGOTBDOV9FNzJCXzQ1NTdfOTEyNl9BRkU3NUEzQURFOURfX0lOQ0xVREVEXykKKyNkZWZpbmUgQUZYX1BPQ0tFVFBKRExHX0hfX0RGNUY5MEM5X0U3MkJfNDU1N185MTI2X0FGRTc1QTNBREU5RF9fSU5DTFVERURfCisKKyNpZiBfTVNDX1ZFUiA+PSAxMDAwCisjcHJhZ21hIG9uY2UKKyNlbmRpZiAvLyBfTVNDX1ZFUiA+PSAxMDAwCisKKyNpbmNsdWRlICJTZXR0aW5nc0RsZy5oIgorI2luY2x1ZGUgIlBvcFVwV25kLmgiCisjaW5jbHVkZSA8cGpzdWEtbGliL3Bqc3VhLmg+CisKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIENQb2NrZXRQSkRsZyBkaWFsb2cKKworY2xhc3MgQ1BvY2tldFBKRGxnIDogcHVibGljIENEaWFsb2cKK3sKKy8vIENvbnN0cnVjdGlvbgorcHVibGljOgorCUNQb2NrZXRQSkRsZyhDV25kKiBwUGFyZW50ID0gTlVMTCk7CS8vIHN0YW5kYXJkIGNvbnN0cnVjdG9yCisKKwl2b2lkIE9uUG9wVXBCdXR0b24oaW50IGJ0bk5vKTsKKworLy8gRGlhbG9nIERhdGEKKwkvL3t7QUZYX0RBVEEoQ1BvY2tldFBKRGxnKQorCWVudW0geyBJREQgPSBJRERfUE9DS0VUUEpfRElBTE9HIH07CisJQ0VkaXQJbV9Vcmw7CisJQ0xpc3RDdHJsCW1fQnVkZHlMaXN0OworCUNTdGF0aWMJbV9CdG5VcmxBY3Rpb247CisJQ1N0YXRpYwltX0J0bkFjYzsKKwlDU3RhdGljCW1fQWNjSWQ7CisJLy99fUFGWF9EQVRBCisKKwkvLyBDbGFzc1dpemFyZCBnZW5lcmF0ZWQgdmlydHVhbCBmdW5jdGlvbiBvdmVycmlkZXMKKwkvL3t7QUZYX1ZJUlRVQUwoQ1BvY2tldFBKRGxnKQorCXByb3RlY3RlZDoKKwl2aXJ0dWFsIHZvaWQgRG9EYXRhRXhjaGFuZ2UoQ0RhdGFFeGNoYW5nZSogcERYKTsJLy8gRERYL0REViBzdXBwb3J0CisJLy99fUFGWF9WSVJUVUFMCisKKy8vIEltcGxlbWVudGF0aW9uCitwcm90ZWN0ZWQ6CisJSElDT04gbV9oSWNvbjsKKworCS8vIEdlbmVyYXRlZCBtZXNzYWdlIG1hcCBmdW5jdGlvbnMKKwkvL3t7QUZYX01TRyhDUG9ja2V0UEpEbGcpCisJdmlydHVhbCBCT09MIE9uSW5pdERpYWxvZygpOworCWFmeF9tc2cgdm9pZCBPbkJ0bkFjYygpOworCWFmeF9tc2cgdm9pZCBPbkJ0bkFjdGlvbigpOworCWFmeF9tc2cgdm9pZCBPblNldHRpbmdzKCk7CisJYWZ4X21zZyB2b2lkIE9uVXJpQ2FsbCgpOworCWFmeF9tc2cgdm9pZCBPblRpbWVyKFVJTlQgbklERXZlbnQpOworCWFmeF9tc2cgdm9pZCBPblVyaUFkZEJ1ZGR5KCk7CisJYWZ4X21zZyB2b2lkIE9uVXJpRGVsQnVkZHkoKTsKKwlhZnhfbXNnIHZvaWQgT25BY2NPbmxpbmUoKTsKKwlhZnhfbXNnIHZvaWQgT25BY2NJbnZpc2libGUoKTsKKwlhZnhfbXNnIHZvaWQgT25DbGlja0J1ZGR5TGlzdChOTUhEUiogcE5NSERSLCBMUkVTVUxUKiBwUmVzdWx0KTsKKwkvL319QUZYX01TRworCURFQ0xBUkVfTUVTU0FHRV9NQVAoKQorCitwcml2YXRlOgorCWVudW0gUG9wVXBUeXBlCisJeworCSAgICBQT1BVUF9SRUdJU1RSQVRJT04sCisJICAgIFBPUFVQX0NBTEwsCisKKwkgICAgUE9QVVBfTUFYX1RZUEUKKwl9OworCWVudW0gUG9wVXBFbGVtZW50CisJeworCSAgICBQT1BVUF9FTF9USVRMRTEsCisJICAgIFBPUFVQX0VMX1RJVExFMiwKKwkgICAgUE9QVVBfRUxfVElUTEUzLAorCSAgICBQT1BVUF9FTF9CVVRUT04xLAorCSAgICBQT1BVUF9FTF9CVVRUT04yLAorCX07CisJQ1BvcFVwV25kCSptX1BvcFVwOworCWludAkJbV9Qb3BVcENvdW50OworCUJPT0wJCW1fUG9wVXBTdGF0ZVtQT1BVUF9NQVhfVFlQRV07CisJQ1BvcFVwQ29udGVudAltX1BvcFVwQ29udGVudFtQT1BVUF9NQVhfVFlQRV07CisKKwl2b2lkIFBvcFVwX1Nob3coUG9wVXBUeXBlIHR5cGUsIAorCQkJY29uc3QgQ1N0cmluZyYgdGl0bGUxLAorCQkJY29uc3QgQ1N0cmluZyYgdGl0bGUyLAorCQkJY29uc3QgQ1N0cmluZyYgdGl0bGUzLAorCQkJY29uc3QgQ1N0cmluZyYgYnRuMSwKKwkJCWNvbnN0IENTdHJpbmcmIGJ0bjIsCisJCQl1bnNpZ25lZCB1c2VyRGF0YSk7CisJdm9pZCBQb3BVcF9Nb2RpZnkoUG9wVXBUeXBlIHR5cGUsCisJCQkgIFBvcFVwRWxlbWVudCBlbCwKKwkJCSAgY29uc3QgQ1N0cmluZyYgdGV4dCk7CisJdm9pZCBQb3BVcF9IaWRlKFBvcFVwVHlwZSB0eXBlKTsKKworcHJpdmF0ZToKKwlDUG9ja2V0UEpTZXR0aW5ncyBtX0NmZzsKKworCXZvaWQgRXJyb3IoY29uc3QgQ1N0cmluZyAmdGl0bGUsIHBqX3N0YXR1c190IHJjKTsKKwlCT09MIFJlc3RhcnQoKTsKKwl2b2lkIE9uT0soKTsKKwlpbnQgIEZpbmRCdWRkeUluQ2ZnKGNvbnN0IENTdHJpbmcgJnVyaSk7CisJaW50ICBGaW5kQnVkZHlJblBqc3VhKGNvbnN0IENTdHJpbmcgJnVyaSk7CisJdm9pZCBSZWRyYXdCdWRkeUxpc3QoKTsKKworcHJpdmF0ZToKKwlwanN1YV9hY2NfaWQJbV9QanN1YUFjY0lkOworCisJdm9pZCBPblJlZ1N0YXRlKCk7CisJdm9pZCBPbkNhbGxTdGF0ZSgpOworCisJLy8gcGpzdWEgY2FsbGJhY2tzCisJc3RhdGljIHZvaWQgb25fY2FsbF9zdGF0ZShwanN1YV9jYWxsX2lkIGNhbGxfaWQsIHBqc2lwX2V2ZW50ICplKTsKKwlzdGF0aWMgdm9pZCBvbl9jYWxsX21lZGlhX3N0YXRlKHBqc3VhX2NhbGxfaWQgY2FsbF9pZCk7CisJc3RhdGljIHZvaWQgb25faW5jb21pbmdfY2FsbChwanN1YV9hY2NfaWQgYWNjX2lkLCBwanN1YV9jYWxsX2lkIGNhbGxfaWQsCisJCQkgICAgIHBqc2lwX3J4X2RhdGEgKnJkYXRhKTsKKwlzdGF0aWMgdm9pZCBvbl9yZWdfc3RhdGUocGpzdWFfYWNjX2lkIGFjY19pZCk7CisJc3RhdGljIHZvaWQgb25fYnVkZHlfc3RhdGUocGpzdWFfYnVkZHlfaWQgYnVkZHlfaWQpOworCXN0YXRpYyB2b2lkIG9uX3BhZ2VyKHBqc3VhX2NhbGxfaWQgY2FsbF9pZCwgY29uc3QgcGpfc3RyX3QgKmZyb20sIAorCQkgICAgIGNvbnN0IHBqX3N0cl90ICp0bywgY29uc3QgcGpfc3RyX3QgKmNvbnRhY3QsCisJCSAgICAgY29uc3QgcGpfc3RyX3QgKm1pbWVfdHlwZSwgY29uc3QgcGpfc3RyX3QgKnRleHQpOworfTsKKworLy97e0FGWF9JTlNFUlRfTE9DQVRJT059fQorLy8gTWljcm9zb2Z0IGVNYmVkZGVkIFZpc3VhbCBDKysgd2lsbCBpbnNlcnQgYWRkaXRpb25hbCBkZWNsYXJhdGlvbnMgaW1tZWRpYXRlbHkgYmVmb3JlIHRoZSBwcmV2aW91cyBsaW5lLgorCisjZW5kaWYgLy8gIWRlZmluZWQoQUZYX1BPQ0tFVFBKRExHX0hfX0RGNUY5MEM5X0U3MkJfNDU1N185MTI2X0FGRTc1QTNBREU5RF9fSU5DTFVERURfKQpkaWZmIC0tZ2l0IGEvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovUG9wVXBXbmQuY3BwIGIvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovUG9wVXBXbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmMTY1NGYKLS0tIC9kZXYvbnVsbAorKysgYi9wanNpcC1hcHBzL3NyYy9wb2NrZXRwai9Qb3BVcFduZC5jcHAKQEAgLTAsMCArMSwyMzUgQEAKKyNpbmNsdWRlICJzdGRhZnguaCIKKyNpbmNsdWRlICJQb3BVcFduZC5oIgorI2luY2x1ZGUgInJlc291cmNlLmgiCisjaW5jbHVkZSAiUG9ja2V0UEpEbGcuaCIKKworI2lmZGVmIF9ERUJVRworI2RlZmluZSBuZXcgREVCVUdfTkVXCisjdW5kZWYgVEhJU19GSUxFCitzdGF0aWMgY2hhciBUSElTX0ZJTEVbXSA9IF9fRklMRV9fOworI2VuZGlmCisKKyNkZWZpbmUgSURDX0JUTjEgICAgIDEwCisjZGVmaW5lIElEQ19CVE4yICAgICAxMQorCisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBDUG9wVXBXbmQKKworQ1BvcFVwV25kOjpDUG9wVXBXbmQoQ1BvY2tldFBKRGxnKiBwUGFyZW50KQoreworICAgIENyZWF0ZShwUGFyZW50KTsKK30KKworQ1BvcFVwV25kOjp+Q1BvcFVwV25kKCkKK3sKKyAgICBEZXN0cm95V2luZG93KCk7Cit9CisKK0JPT0wgQ1BvcFVwV25kOjpDcmVhdGUoQ1BvY2tldFBKRGxnKiBwUGFyZW50KQoreworICAgIEJPT0wgYlN1Y2Nlc3M7CisKKyAgICBtX1BhcmVudFduZCA9IHBQYXJlbnQ7CisKKyAgICAvLyBSZWdpc3RlciB3aW5kb3cgY2xhc3MKKyAgICBDU3RyaW5nIGNzQ2xhc3NOYW1lID0gQWZ4UmVnaXN0ZXJXbmRDbGFzcyhDU19IUkVEUkFXfENTX1ZSRURSQVcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDQnJ1c2goOjpHZXRTeXNDb2xvcihDT0xPUl9CVE5GQUNFKSkpOworCisgICAgLy8gQ3JlYXRlIHBvcHVwIHdpbmRvdworICAgIGJTdWNjZXNzID0gQ3JlYXRlRXgoV1NfRVhfRExHTU9EQUxGUkFNRXxXU19FWF9UT1BNT1NULCAvLyBFeHRlbmRlZCBzdHlsZQorICAgICAgICAgICAgICAgICAgICAgICAgY3NDbGFzc05hbWUsICAgICAgICAgICAgICAgICAgICAgICAvLyBDbGFzc25hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgIF9UKCJQb2NrZXRQSiIpLCAgICAgICAgICAgICAgICAgICAgLy8gVGl0bGUKKyAgICAgICAgICAgICAgICAgICAgICAgIFdTX1BPUFVQfFdTX0JPUkRFUnxXU19DQVBUSU9OLCAgICAgLy8gc3R5bGUKKyAgICAgICAgICAgICAgICAgICAgICAgIDAsMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcG9zaXRpb24gLSB1cGRhdGVkIHNvb24uCisgICAgICAgICAgICAgICAgICAgICAgICAxLDEsCQkJCSAgIC8vIFNpemUgLSB1cGRhdGVkIHNvb24KKyAgICAgICAgICAgICAgICAgICAgICAgIHBQYXJlbnQtPkdldFNhZmVId25kKCksICAgICAgICAgICAgLy8gaGFuZGxlIHRvIHBhcmVudAorICAgICAgICAgICAgICAgICAgICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBObyBtZW51CisgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsgICAgCisgICAgaWYgKCFiU3VjY2VzcykgCisJcmV0dXJuIEZBTFNFOworCisgICAgU2hvd1dpbmRvdyhTV19ISURFKTsKKworICAgIC8vIE5vdyBjcmVhdGUgdGhlIGNvbnRyb2xzCisgICAgQ1JlY3QgVGVtcFJlY3QoMCwwLDEwLDEwKTsKKworICAgIC8qIHxTU19MRUZUTk9XT1JEV1JBUCAqLworICAgIGJTdWNjZXNzID0gbV9UaXRsZTEuQ3JlYXRlKF9UKCJUaXRsZTEiKSwgV1NfQ0hJTER8V1NfVklTSUJMRXxTU19OT1BSRUZJWCwKKwkJCSAgICAgICBUZW1wUmVjdCwgdGhpcywgSURDX1RJVExFMSk7CisgICAgaWYgKCFiU3VjY2VzcykKKwlyZXR1cm4gRkFMU0U7CisKKyAgICBiU3VjY2VzcyA9IG1fVGl0bGUyLkNyZWF0ZShfVCgiVGl0bGUyIiksIFdTX0NISUxEfFdTX1ZJU0lCTEV8U1NfTk9QUkVGSVgsCisJCQkgICAgICAgVGVtcFJlY3QsIHRoaXMsIElEQ19USVRMRTIpOworICAgIGlmICghYlN1Y2Nlc3MpCisJcmV0dXJuIEZBTFNFOworCisgICAgYlN1Y2Nlc3MgPSBtX1RpdGxlMy5DcmVhdGUoX1QoIlRpdGxlMyIpLCBXU19DSElMRHxXU19WSVNJQkxFfFNTX05PUFJFRklYLAorCQkJICAgICAgIFRlbXBSZWN0LCB0aGlzLCBJRENfVElUTEUzKTsKKyAgICBpZiAoIWJTdWNjZXNzKQorCXJldHVybiBGQUxTRTsKKworICAgIGJTdWNjZXNzID0gbV9CdG4xLkNyZWF0ZShfVCgiQnV0dG9uMSIpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV1NfQ0hJTER8V1NfVklTSUJMRXxXU19UQUJTVE9QfCBCU19QVVNIQlVUVE9OLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVtcFJlY3QsIHRoaXMsIElEQ19CVE4xKTsKKyAgICBpZiAoIWJTdWNjZXNzKQorCXJldHVybiBGQUxTRTsKKworICAgIGJTdWNjZXNzID0gbV9CdG4yLkNyZWF0ZShfVCgiQnV0dG9uMiIpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV1NfQ0hJTER8V1NfVklTSUJMRXxXU19UQUJTVE9QfCBCU19QVVNIQlVUVE9OLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVtcFJlY3QsIHRoaXMsIElEQ19CVE4yKTsKKyAgICBpZiAoIWJTdWNjZXNzKQorCXJldHVybiBGQUxTRTsKKworICAgIENGb250ICpmdDEgPSBuZXcgQ0ZvbnQsIAorCSAgKmZ0MiA9IG5ldyBDRm9udCwgCisJICAqZnQzID0gbmV3IENGb250OworCisKKyAgICBMT0dGT05UIGxmOworICAgIG1lbXNldCgmbGYsIDAsIHNpemVvZihMT0dGT05UKSk7CisgICAgbGYubGZIZWlnaHQgPSAxMjsKKyAgICBsc3RyY3B5KGxmLmxmRmFjZU5hbWUsIF9UKCJBcmlhbCIpKTsKKyAgICBWRVJJRlkoZnQxLT5DcmVhdGVGb250SW5kaXJlY3QoJmxmKSk7CisgICAgVkVSSUZZKGZ0My0+Q3JlYXRlRm9udEluZGlyZWN0KCZsZikpOworCisgICAgbGYubGZIZWlnaHQgPSAyMDsKKyAgICBWRVJJRlkoZnQyLT5DcmVhdGVGb250SW5kaXJlY3QoJmxmKSk7CisKKyAgICBtX1RpdGxlMS5TZXRGb250KGZ0MSwgVFJVRSk7CisgICAgbV9UaXRsZTIuU2V0Rm9udChmdDIsIFRSVUUpOworICAgIG1fVGl0bGUzLlNldEZvbnQoZnQzLCBUUlVFKTsKKworCisgICAgU2V0V2luZG93U2l6ZSgpOworCisgICAgLy8gQ2VudGVyIGFuZCBzaG93IHdpbmRvdworICAgIENlbnRlcldpbmRvdygpOworCisgICAgU2hvdygpOworCisgICAgcmV0dXJuIFRSVUU7Cit9CisKK3ZvaWQgQ1BvcFVwV25kOjpTZXRDb250ZW50KGNvbnN0IENQb3BVcENvbnRlbnQgJmNvbnRlbnQpCit7CisgICAgbV9UaXRsZTEuU2V0V2luZG93VGV4dChjb250ZW50Lm1fVGl0bGUxKTsKKyAgICBtX1RpdGxlMi5TZXRXaW5kb3dUZXh0KGNvbnRlbnQubV9UaXRsZTIpOworICAgIG1fVGl0bGUzLlNldFdpbmRvd1RleHQoY29udGVudC5tX1RpdGxlMyk7CisKKyAgICBpZiAoY29udGVudC5tX0J0bjEgIT0gIiIpIHsKKwltX0J0bjEuU2V0V2luZG93VGV4dChjb250ZW50Lm1fQnRuMSk7CisJbV9CdG4xLlNob3dXaW5kb3coU1dfU0hPVyk7CisgICAgfSBlbHNlIHsKKwltX0J0bjEuU2hvd1dpbmRvdyhTV19ISURFKTsKKyAgICB9CisKKyAgICBpZiAoY29udGVudC5tX0J0bjIgIT0gIiIpIHsKKwltX0J0bjIuU2V0V2luZG93VGV4dChjb250ZW50Lm1fQnRuMik7CisJbV9CdG4yLlNob3dXaW5kb3coU1dfU0hPVyk7CisgICAgfSBlbHNlIHsKKwltX0J0bjIuU2hvd1dpbmRvdyhTV19ISURFKTsKKyAgICB9CisKKyAgICBVcGRhdGVXaW5kb3coKTsKKyAgICBTaG93V2luZG93KFNXX1NIT1cpOworfQorCit2b2lkIENQb3BVcFduZDo6U2V0V2luZG93U2l6ZShpbnQgd2lkdGgsIGludCBoZWlnaHQpCit7CisgICAgZW51bSB7IEgxID0gMTYsIEgyID0gNDAsIEgzID0gMTYsIFMgPSA1LCBHID0gMTAsIEJXPTYwLCBCSD0yMCwgQkc9NDB9OworCisgICAgQ1JlY3Qgcm9vdFJlY3QoMCwgMCwgMzIwLCAyNDApOworICAgIGludCBZOworCisgICAgTW92ZVdpbmRvdygocm9vdFJlY3QuV2lkdGgoKSAtIHdpZHRoKS8yLCAocm9vdFJlY3QuSGVpZ2h0KCkgLSBoZWlnaHQpLzIsCisJICAgICAgIHdpZHRoLCBoZWlnaHQpOworCisgICAgbV9UaXRsZTEuTW92ZVdpbmRvdygxMCwgWT1TLCB3aWR0aC0yMCwgSDEpOworICAgIG1fVGl0bGUyLk1vdmVXaW5kb3coMTAsIFkrPUgxK0csIHdpZHRoLTIwLCBIMik7CisgICAgbV9UaXRsZTMuTW92ZVdpbmRvdygxMCwgWSs9SDIrRywgd2lkdGgtMjAsIEgzKTsKKworICAgIG1fQnRuMS5Nb3ZlV2luZG93KCh3aWR0aC0yKkJXLUJHKS8yLCBZKz1IMytHLCBCVywgQkgpOworICAgIG1fQnRuMi5Nb3ZlV2luZG93KCh3aWR0aC0yKkJXLUJHKS8yK0JXK0JHLCBZLCBCVywgQkgpOworfQorCit2b2lkIENQb3BVcFduZDo6SGlkZSgpICAKK3sgCisgICAgaWYgKCE6OklzV2luZG93KEdldFNhZmVId25kKCkpKSAKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKElzV2luZG93VmlzaWJsZSgpKQorICAgIHsKKyAgICAgICAgU2hvd1dpbmRvdyhTV19ISURFKTsKKyAgICAgICAgTW9kaWZ5U3R5bGUoV1NfVklTSUJMRSwgMCk7CisgICAgfQorfQorCit2b2lkIENQb3BVcFduZDo6U2hvdygpICAKK3sgCisgICAgaWYgKCE6OklzV2luZG93KEdldFNhZmVId25kKCkpKQorICAgICAgICByZXR1cm47CisKKyAgICBNb2RpZnlTdHlsZSgwLCBXU19WSVNJQkxFKTsKKyAgICBTaG93V2luZG93KFNXX1NIT1dOQSk7CisgICAgUmVkcmF3V2luZG93KE5VTEwsTlVMTCxSRFdfRVJBU0V8UkRXX0lOVkFMSURBVEV8UkRXX1VQREFURU5PVyk7Cit9CisKK0JFR0lOX01FU1NBR0VfTUFQKENQb3BVcFduZCwgQ1duZCkKKyAgICAvL3t7QUZYX01TR19NQVAoQ1BvcFVwV25kKQorICAgIE9OX1dNX0VSQVNFQktHTkQoKQorCS8vfX1BRlhfTVNHX01BUAorICAgIE9OX0JOX0NMSUNLRUQoSURDX0JUTjEsIE9uQ2FuY2VsMSkKKyAgICBPTl9CTl9DTElDS0VEKElEQ19CVE4yLCBPbkNhbmNlbDIpCitFTkRfTUVTU0FHRV9NQVAoKQorCisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBDUG9wVXBXbmQgbWVzc2FnZSBoYW5kbGVycworCitCT09MIENQb3BVcFduZDo6T25FcmFzZUJrZ25kKENEQyogcERDKSAKK3sKKyAgICBDQnJ1c2ggYmFja0JydXNoOworICAgIGJhY2tCcnVzaC5DcmVhdGVTb2xpZEJydXNoKFJHQigyNTUsMjU1LDI1NSkpOworICAgIENCcnVzaCogcE9sZEJydXNoID0gcERDLT5TZWxlY3RPYmplY3QoJmJhY2tCcnVzaCk7CisKKyAgICBDUmVjdCByZWN0OworICAgIHBEQy0+R2V0Q2xpcEJveCgmcmVjdCk7ICAgICAvLyBFcmFzZSB0aGUgYXJlYSBuZWVkZWQKKyAgICBwREMtPlBhdEJsdChyZWN0LmxlZnQsIHJlY3QudG9wLCByZWN0LldpZHRoKCksIHJlY3QuSGVpZ2h0KCksIFBBVENPUFkpOworICAgIHBEQy0+U2VsZWN0T2JqZWN0KHBPbGRCcnVzaCk7CisKKyAgICByZXR1cm4gVFJVRTsKK30KKwordm9pZCBDUG9wVXBXbmQ6Ok9uQ2FuY2VsMSgpIAoreworICAgIG1fUGFyZW50V25kLT5PblBvcFVwQnV0dG9uKDEpOworfQorCisKK3ZvaWQgQ1BvcFVwV25kOjpPbkNhbmNlbDIoKSAKK3sKKyAgICBtX1BhcmVudFduZC0+T25Qb3BVcEJ1dHRvbigyKTsKK30KKworCitCT09MIENQb3BVcFduZDo6RGVzdHJveVdpbmRvdygpIAoreworICAgIHJldHVybiBDV25kOjpEZXN0cm95V2luZG93KCk7Cit9CisKK3ZvaWQgQ1BvcFVwV25kOjpQZWVrQW5kUHVtcCgpCit7CisgICAgTVNHIG1zZzsKKyAgICB3aGlsZSAoOjpQZWVrTWVzc2FnZSgmbXNnLCBOVUxMLDAsMCxQTV9OT1JFTU9WRSkpIAorICAgIHsKKyAgICAgICAgaWYgKCFBZnhHZXRBcHAoKS0+UHVtcE1lc3NhZ2UoKSkgCisgICAgICAgIHsKKyAgICAgICAgICAgIDo6UG9zdFF1aXRNZXNzYWdlKDApOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9IAorICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovUG9wVXBXbmQuaCBiL3Bqc2lwLWFwcHMvc3JjL3BvY2tldHBqL1BvcFVwV25kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTVjNGEyNAotLS0gL2Rldi9udWxsCisrKyBiL3Bqc2lwLWFwcHMvc3JjL3BvY2tldHBqL1BvcFVwV25kLmgKQEAgLTAsMCArMSw2NyBAQAorI2lmbmRlZiBfX1BPUFVQX1dORF9IX18KKyNkZWZpbmUgX19QT1BVUF9XTkRfSF9fCisKKworY2xhc3MgQ1BvY2tldFBKRGxnOworCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworc3RydWN0IENQb3BVcENvbnRlbnQKK3sKKyAgICBDU3RyaW5nIG1fVGl0bGUxOworICAgIENTdHJpbmcgbV9UaXRsZTI7CisgICAgQ1N0cmluZyBtX1RpdGxlMzsKKyAgICBDU3RyaW5nIG1fQnRuMTsKKyAgICBDU3RyaW5nIG1fQnRuMjsKK307CisKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIENQb3BVcFduZCB3aW5kb3cKKworY2xhc3MgQ1BvcFVwV25kIDogcHVibGljIENXbmQKK3sKK3B1YmxpYzoKKyAgICBDUG9wVXBXbmQoQ1BvY2tldFBKRGxnKiBwUGFyZW50KTsKKyAgICB2aXJ0dWFsIH5DUG9wVXBXbmQoKTsKKworICAgIHZvaWQgU2V0Q29udGVudChjb25zdCBDUG9wVXBDb250ZW50ICZjb250ZW50KTsKKyAgICB2b2lkIEhpZGUoKTsKKyAgICB2b2lkIFNob3coKTsKKworICAgIHZvaWQgU2V0V2luZG93U2l6ZShpbnQgbldpbmRvd1dpZHRoID0gMjAwLCBpbnQgbldpbmRvd0hlaWdodCA9IDE4MCk7CisKKyAgICB2b2lkIFBlZWtBbmRQdW1wKCk7CisgICAgCisvLyBJbXBsZW1lbnRhdGlvbgorcHJvdGVjdGVkOgorICAgIENQb2NrZXRQSkRsZyAqIG1fUGFyZW50V25kOworCisgICAgQ1N0YXRpYyAgICAgICBtX1RpdGxlMTsKKyAgICBDU3RhdGljICAgICAgIG1fVGl0bGUyOworICAgIENTdGF0aWMgICAgICAgbV9UaXRsZTM7CisgICAgQ0J1dHRvbiAgICAgICBtX0J0bjE7CisgICAgQ0J1dHRvbiAgICAgICBtX0J0bjI7CisKKyAgICBCT09MIENyZWF0ZShDUG9ja2V0UEpEbGcqIHBQYXJlbnQpOworCisvLyBPdmVycmlkZXMKKyAgICAvLyBDbGFzc1dpemFyZCBnZW5lcmF0ZWQgdmlydHVhbCBmdW5jdGlvbiBvdmVycmlkZXMKKyAgICAvL3t7QUZYX1ZJUlRVQUwoQ1BvcFVwV25kKQorCXB1YmxpYzoKKwl2aXJ0dWFsIEJPT0wgRGVzdHJveVdpbmRvdygpOworCS8vfX1BRlhfVklSVFVBTAorCisvLyBHZW5lcmF0ZWQgbWVzc2FnZSBtYXAgZnVuY3Rpb25zCitwcm90ZWN0ZWQ6CisgICAgLy97e0FGWF9NU0coQ1BvcFVwV25kKQorICAgIGFmeF9tc2cgQk9PTCBPbkVyYXNlQmtnbmQoQ0RDKiBwREMpOworCS8vfX1BRlhfTVNHCisgICAgYWZ4X21zZyB2b2lkIE9uQ2FuY2VsMSgpOworICAgIGFmeF9tc2cgdm9pZCBPbkNhbmNlbDIoKTsKKyAgICBERUNMQVJFX01FU1NBR0VfTUFQKCkKK307CisKKworI2VuZGlmCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCmRpZmYgLS1naXQgYS9wanNpcC1hcHBzL3NyYy9wb2NrZXRwai9SZWFkTWUudHh0IGIvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovUmVhZE1lLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNTJjZDlkCi0tLSAvZGV2L251bGwKKysrIGIvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovUmVhZE1lLnR4dApAQCAtMCwwICsxLDgxIEBACis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAgTWljcm9zb2Z0IEZvdW5kYXRpb24gQ2xhc3MgTGlicmFyeSBmb3IgV2luZG93cyBDRTogUG9ja2V0UEoKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisKK0FwcFdpemFyZCBoYXMgY3JlYXRlZCB0aGlzIFBvY2tldFBKIGFwcGxpY2F0aW9uIGZvciB5b3UuICBUaGlzIGFwcGxpY2F0aW9uCitub3Qgb25seSBkZW1vbnN0cmF0ZXMgdGhlIGJhc2ljcyBvZiB1c2luZyB0aGUgTWljcm9zb2Z0IEZvdW5kYXRpb24gY2xhc3NlcworYnV0IGlzIGFsc28gYSBzdGFydGluZyBwb2ludCBmb3Igd3JpdGluZyB5b3VyIGFwcGxpY2F0aW9uLgorCitUaGlzIGZpbGUgY29udGFpbnMgYSBzdW1tYXJ5IG9mIHdoYXQgeW91IHdpbGwgZmluZCBpbiBlYWNoIG9mIHRoZSBmaWxlcyB0aGF0CittYWtlIHVwIHlvdXIgUG9ja2V0UEogYXBwbGljYXRpb24uCisKK1BvY2tldFBKLmgKKyAgICBUaGlzIGlzIHRoZSBtYWluIGhlYWRlciBmaWxlIGZvciB0aGUgYXBwbGljYXRpb24uICBJdCBpbmNsdWRlcyBvdGhlcgorICAgIHByb2plY3Qgc3BlY2lmaWMgaGVhZGVycyAoaW5jbHVkaW5nIFJlc291cmNlLmgpIGFuZCBkZWNsYXJlcyB0aGUKKyAgICBDUG9ja2V0UEpBcHAgYXBwbGljYXRpb24gY2xhc3MuCisKK1BvY2tldFBKLmNwcAorICAgIFRoaXMgaXMgdGhlIG1haW4gYXBwbGljYXRpb24gc291cmNlIGZpbGUgdGhhdCBjb250YWlucyB0aGUgYXBwbGljYXRpb24KKyAgICBjbGFzcyBDUG9ja2V0UEpBcHAuCisKK1BvY2tldFBKLnJjCisgICAgVGhpcyBpcyBhIGxpc3Rpbmcgb2YgYWxsIG9mIHRoZSBNaWNyb3NvZnQgV2luZG93cyBDRSByZXNvdXJjZXMgdGhhdCB0aGUKKyAgICBwcm9ncmFtIHVzZXMuICBJdCBpbmNsdWRlcyB0aGUgaWNvbnMsIGJpdG1hcHMsIGFuZCBjdXJzb3JzIHRoYXQgYXJlIHN0b3JlZAorICAgIGluIHRoZSBSRVMgc3ViZGlyZWN0b3J5LiAgVGhpcyBmaWxlIGNhbiBiZSBkaXJlY3RseSBlZGl0ZWQgaW4gTWljcm9zb2Z0CisJZU1iZWRkZWQgVmlzdWFsIEMrKy4KKworcmVzXFBvY2tldFBKLmljbworICAgIFRoaXMgaXMgYW4gaWNvbiBmaWxlLCB3aGljaCBpcyB1c2VkIGFzIHRoZSBhcHBsaWNhdGlvbidzIGljb24uICBUaGlzCisgICAgaWNvbiBpcyBpbmNsdWRlZCBieSB0aGUgbWFpbiByZXNvdXJjZSBmaWxlIFBvY2tldFBKLnJjLgorCityZXNcUG9ja2V0UEoucmMyCisgICAgVGhpcyBmaWxlIGNvbnRhaW5zIHJlc291cmNlcyB0aGF0IGFyZSBub3QgZWRpdGVkIGJ5IE1pY3Jvc29mdCAKKwllTWJlZGRlZCBWaXN1YWwgQysrLiAgWW91IHNob3VsZCBwbGFjZSBhbGwgcmVzb3VyY2VzIG5vdAorCWVkaXRhYmxlIGJ5IHRoZSByZXNvdXJjZSBlZGl0b3IgaW4gdGhpcyBmaWxlLgorCitQb2NrZXRQSi52Y2MKKyAgICBUaGlzIGZpbGUgY29udGFpbnMgaW5mb3JtYXRpb24gdXNlZCBieSBDbGFzc1dpemFyZCB0byBlZGl0IGV4aXN0aW5nCisgICAgY2xhc3NlcyBvciBhZGQgbmV3IGNsYXNzZXMuICBDbGFzc1dpemFyZCBhbHNvIHVzZXMgdGhpcyBmaWxlIHRvIHN0b3JlCisgICAgaW5mb3JtYXRpb24gbmVlZGVkIHRvIGNyZWF0ZSBhbmQgZWRpdCBtZXNzYWdlIG1hcHMgYW5kIGRpYWxvZyBkYXRhCisgICAgbWFwcyBhbmQgdG8gY3JlYXRlIHByb3RvdHlwZSBtZW1iZXIgZnVuY3Rpb25zLgorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitBcHBXaXphcmQgY3JlYXRlcyBvbmUgZGlhbG9nIGNsYXNzOgorCitQb2NrZXRQSkRsZy5oLCBQb2NrZXRQSkRsZy5jcHAgLSB0aGUgZGlhbG9nCisgICAgVGhlc2UgZmlsZXMgY29udGFpbiB5b3VyIENQb2NrZXRQSkRsZyBjbGFzcy4gIFRoaXMgY2xhc3MgZGVmaW5lcworICAgIHRoZSBiZWhhdmlvciBvZiB5b3VyIGFwcGxpY2F0aW9uJ3MgbWFpbiBkaWFsb2cuICBUaGUgZGlhbG9nJ3MKKyAgICB0ZW1wbGF0ZSBpcyBpbiBQb2NrZXRQSi5yYywgd2hpY2ggY2FuIGJlIGVkaXRlZCBpbiBNaWNyb3NvZnQKKwlEZXZlbG9wZXIgU3R1ZGlvLgorCisKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KK090aGVyIHN0YW5kYXJkIGZpbGVzOgorCitTdGRBZnguaCwgU3RkQWZ4LmNwcAorICAgIFRoZXNlIGZpbGVzIGFyZSB1c2VkIHRvIGJ1aWxkIGEgcHJlY29tcGlsZWQgaGVhZGVyIChQQ0gpIGZpbGUKKyAgICBuYW1lZCBQb2NrZXRQSi5wY2ggYW5kIGEgcHJlY29tcGlsZWQgdHlwZXMgZmlsZSBuYW1lZCBTdGRBZngub2JqLgorCitSZXNvdXJjZS5oCisgICAgVGhpcyBpcyB0aGUgc3RhbmRhcmQgaGVhZGVyIGZpbGUsIHdoaWNoIGRlZmluZXMgbmV3IHJlc291cmNlIElEcy4KKyAgICBNaWNyb3NvZnQgZU1iZWRkZWQgVmlzdWFsIEMrKyByZWFkcyBhbmQgdXBkYXRlcyB0aGlzIGZpbGUuCisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCitPdGhlciBub3RlczoKKworQXBwV2l6YXJkIHVzZXMgIlRPRE86IiB0byBpbmRpY2F0ZSBwYXJ0cyBvZiB0aGUgc291cmNlIGNvZGUgeW91CitzaG91bGQgYWRkIHRvIG9yIGN1c3RvbWl6ZS4KKworSWYgeW91ciBhcHBsaWNhdGlvbiB1c2VzIE1GQyBpbiBhIHNoYXJlZCBETEwsIGFuZCB5b3VyIGFwcGxpY2F0aW9uIGlzIAoraW4gYSBsYW5ndWFnZSBvdGhlciB0aGFuIHRoZSBvcGVyYXRpbmcgc3lzdGVtJ3MgY3VycmVudCBsYW5ndWFnZSwgeW91Cit3aWxsIG5lZWQgdG8gY29weSB0aGUgY29ycmVzcG9uZGluZyBsb2NhbGl6ZWQgcmVzb3VyY2VzIE1GQ1dDWFhYLkRMTCBmcm9tCit0aGUgTWljcm9zb2Z0IGVNYmVkZGVkIFZpc3VhbCBDKysgQ0QtUk9NIG9udG8gdGhlIHN5c3RlbSBvciBzeXN0ZW0zMiBkaXJlY3RvcnksCithbmQgcmVuYW1lIGl0IHRvIGJlIE1GQ0xPQy5ETEwuICAoIlhYWCIgc3RhbmRzIGZvciB0aGUgbGFuZ3VhZ2UgYWJicmV2aWF0aW9uLgorRm9yIGV4YW1wbGUsIE1GQ1dDREVVLkRMTCBjb250YWlucyByZXNvdXJjZXMgdHJhbnNsYXRlZCB0byBHZXJtYW4uKSAgSWYgeW91Citkb24ndCBkbyB0aGlzLCBzb21lIG9mIHRoZSBVSSBlbGVtZW50cyBvZiB5b3VyIGFwcGxpY2F0aW9uIHdpbGwgcmVtYWluIGluIHRoZQorbGFuZ3VhZ2Ugb2YgdGhlIG9wZXJhdGluZyBzeXN0ZW0uCisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCmRpZmYgLS1naXQgYS9wanNpcC1hcHBzL3NyYy9wb2NrZXRwai9TZXR0aW5nc0RsZy5jcHAgYi9wanNpcC1hcHBzL3NyYy9wb2NrZXRwai9TZXR0aW5nc0RsZy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQ0NTY4MwotLS0gL2Rldi9udWxsCisrKyBiL3Bqc2lwLWFwcHMvc3JjL3BvY2tldHBqL1NldHRpbmdzRGxnLmNwcApAQCAtMCwwICsxLDIxNyBAQAorLy8gU2V0dGluZ3NEbGcuY3BwIDogaW1wbGVtZW50YXRpb24gZmlsZQorLy8KKworI2luY2x1ZGUgInN0ZGFmeC5oIgorI2luY2x1ZGUgIlBvY2tldFBKLmgiCisjaW5jbHVkZSAiU2V0dGluZ3NEbGcuaCIKKyNpbmNsdWRlIDxhdGxiYXNlLmg+CisKKyNpZmRlZiBfREVCVUcKKyNkZWZpbmUgbmV3IERFQlVHX05FVworI3VuZGVmIFRISVNfRklMRQorc3RhdGljIGNoYXIgVEhJU19GSUxFW10gPSBfX0ZJTEVfXzsKKyNlbmRpZgorCisjZGVmaW5lIFJFR19QQVRICV9UKCJwanNpcC5vcmdcXFBvY2tldFBDIikKKyNkZWZpbmUgUkVHX0RPTUFJTglfVCgiRG9tYWluIikKKyNkZWZpbmUgUkVHX1VTRVIJX1QoIlVzZXIiKQorI2RlZmluZSBSRUdfUEFTU1dECV9UKCJEYXRhIikKKyNkZWZpbmUgUkVHX1VTRV9TVFVOCV9UKCJVc2VTVFVOIikKKyNkZWZpbmUgUkVHX1NUVU5fU1JWCV9UKCJTVFVOU3J2IikKKyNkZWZpbmUgUkVHX0ROUwkJX1QoIkROUyIpCisjZGVmaW5lIFJFR19VU0VfSUNFCV9UKCJVc2VJQ0UiKQorI2RlZmluZSBSRUdfVVNFX1NSVFAJX1QoIlVzZVNSVFAiKQorI2RlZmluZSBSRUdfVVNFX1BVQkxJU0gJX1QoIlVzZVBVQkxJU0giKQorI2RlZmluZSBSRUdfQlVERFlfQ05UCV9UKCJCdWRkeUNudCIpCisjZGVmaW5lIFJFR19CVUREWV9YCV9UKCJCdWRkeSV1IikKKworCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gU2V0dGluZ3MKKworLy8gTG9hZCBmcm9tIHJlZ2lzdHJ5Cit2b2lkIENQb2NrZXRQSlNldHRpbmdzOjpMb2FkUmVnaXN0cnkoKQoreworICAgIENSZWdLZXkga2V5OworICAgIHdjaGFyX3QgdGV4dFZhbFsyNTZdOworICAgIERXT1JEIGR3b3JkVmFsOworICAgIERXT1JEIGNiRGF0YTsKKworCisgICAgaWYgKGtleS5PcGVuKEhLRVlfQ1VSUkVOVF9VU0VSLCBSRUdfUEFUSCkgIT0gRVJST1JfU1VDQ0VTUykKKwlyZXR1cm47CisKKyAgICBjYkRhdGEgPSBzaXplb2YodGV4dFZhbCk7CisgICAgaWYgKGtleS5RdWVyeVZhbHVlKHRleHRWYWwsIFJFR19ET01BSU4sICZjYkRhdGEpID09IEVSUk9SX1NVQ0NFU1MpIHsKKwltX0RvbWFpbiA9IHRleHRWYWw7CisgICAgfQorCisgICAgY2JEYXRhID0gc2l6ZW9mKHRleHRWYWwpOworICAgIGlmIChrZXkuUXVlcnlWYWx1ZSh0ZXh0VmFsLCBSRUdfVVNFUiwgJmNiRGF0YSkgPT0gRVJST1JfU1VDQ0VTUykgeworCW1fVXNlciA9IHRleHRWYWw7CisgICAgfQorCisgICAgY2JEYXRhID0gc2l6ZW9mKHRleHRWYWwpOworICAgIGlmIChrZXkuUXVlcnlWYWx1ZSh0ZXh0VmFsLCBSRUdfUEFTU1dELCAmY2JEYXRhKSA9PSBFUlJPUl9TVUNDRVNTKSB7CisJbV9QYXNzd29yZCA9IHRleHRWYWw7CisgICAgfQorCisgICAgY2JEYXRhID0gc2l6ZW9mKHRleHRWYWwpOworICAgIGlmIChrZXkuUXVlcnlWYWx1ZSh0ZXh0VmFsLCBSRUdfU1RVTl9TUlYsICZjYkRhdGEpID09IEVSUk9SX1NVQ0NFU1MpIHsKKwltX1N0dW5TcnYgPSB0ZXh0VmFsOworICAgIH0KKworICAgIGNiRGF0YSA9IHNpemVvZih0ZXh0VmFsKTsKKyAgICBpZiAoa2V5LlF1ZXJ5VmFsdWUodGV4dFZhbCwgUkVHX0ROUywgJmNiRGF0YSkgPT0gRVJST1JfU1VDQ0VTUykgeworCW1fRE5TID0gdGV4dFZhbDsKKyAgICB9CisKKyAgICBkd29yZFZhbCA9IDA7CisgICAgaWYgKGtleS5RdWVyeVZhbHVlKGR3b3JkVmFsLCBSRUdfVVNFX1NUVU4pID09IEVSUk9SX1NVQ0NFU1MpIHsKKwltX1VzZVN0dW4gPSBkd29yZFZhbCAhPSAwOworICAgIH0KKworICAgIGlmIChrZXkuUXVlcnlWYWx1ZShkd29yZFZhbCwgUkVHX1VTRV9JQ0UpID09IEVSUk9SX1NVQ0NFU1MpIHsKKwltX1VzZUljZSA9IGR3b3JkVmFsICE9IDA7CisgICAgfQorCisKKyAgICBpZiAoa2V5LlF1ZXJ5VmFsdWUoZHdvcmRWYWwsIFJFR19VU0VfU1JUUCkgPT0gRVJST1JfU1VDQ0VTUykgeworCW1fVXNlU3J0cCA9IGR3b3JkVmFsICE9IDA7CisgICAgfQorCisKKyAgICBjYkRhdGEgPSBzaXplb2YoZHdvcmRWYWwpOworICAgIGlmIChrZXkuUXVlcnlWYWx1ZShkd29yZFZhbCwgUkVHX1VTRV9QVUJMSVNIKSA9PSBFUlJPUl9TVUNDRVNTKSB7CisJbV9Vc2VQdWJsaXNoID0gZHdvcmRWYWwgIT0gMDsKKyAgICB9CisKKyAgICBtX0J1ZGR5TGlzdC5SZW1vdmVBbGwoKTsKKworICAgIERXT1JEIGJ1ZGR5Q291bnQgPSAwOworICAgIGNiRGF0YSA9IHNpemVvZihkd29yZFZhbCk7CisgICAgaWYgKGtleS5RdWVyeVZhbHVlKGR3b3JkVmFsLCBSRUdfQlVERFlfQ05UKSA9PSBFUlJPUl9TVUNDRVNTKSB7CisJYnVkZHlDb3VudCA9IGR3b3JkVmFsOworICAgIH0KKworICAgIHVuc2lnbmVkIGk7CisgICAgZm9yIChpPTA7IGk8YnVkZHlDb3VudDsgKytpKSB7CisJQ1N0cmluZyBlbnRyeTsKKwllbnRyeS5Gb3JtYXQoUkVHX0JVRERZX1gsIGkpOworCisJY2JEYXRhID0gc2l6ZW9mKHRleHRWYWwpOworCWlmIChrZXkuUXVlcnlWYWx1ZSh0ZXh0VmFsLCBlbnRyeSwgJmNiRGF0YSkgPT0gRVJST1JfU1VDQ0VTUykgeworCSAgICBtX0J1ZGR5TGlzdC5BZGQodGV4dFZhbCk7CisJfQorICAgIH0KKworICAgIGtleS5DbG9zZSgpOworfQorCisvLyBTYXZlIHRvIHJlZ2lzdHJ5Cit2b2lkIENQb2NrZXRQSlNldHRpbmdzOjpTYXZlUmVnaXN0cnkoKQoreworICAgIENSZWdLZXkga2V5OworCisgICAgaWYgKGtleS5DcmVhdGUoSEtFWV9DVVJSRU5UX1VTRVIsIFJFR19QQVRIKSAhPSBFUlJPUl9TVUNDRVNTKQorCXJldHVybjsKKworICAgIGtleS5TZXRWYWx1ZShtX0RvbWFpbiwgUkVHX0RPTUFJTik7CisgICAga2V5LlNldFZhbHVlKG1fVXNlciwgUkVHX1VTRVIpOworICAgIGtleS5TZXRWYWx1ZShtX1Bhc3N3b3JkLCBSRUdfUEFTU1dEKTsKKyAgICBrZXkuU2V0VmFsdWUobV9TdHVuU3J2LCBSRUdfU1RVTl9TUlYpOworICAgIGtleS5TZXRWYWx1ZShtX0ROUywgUkVHX0ROUyk7CisgICAgCisgICAga2V5LlNldFZhbHVlKG1fVXNlU3R1biwgUkVHX1VTRV9TVFVOKTsKKyAgICBrZXkuU2V0VmFsdWUobV9Vc2VJY2UsIFJFR19VU0VfSUNFKTsKKyAgICBrZXkuU2V0VmFsdWUobV9Vc2VTcnRwLCBSRUdfVVNFX1NSVFApOworICAgIGtleS5TZXRWYWx1ZShtX1VzZVB1Ymxpc2gsIFJFR19VU0VfUFVCTElTSCk7CisKKyAgICBrZXkuU2V0VmFsdWUobV9CdWRkeUxpc3QuR2V0U2l6ZSgpLCBSRUdfQlVERFlfQ05UKTsKKworICAgIHVuc2lnbmVkIGk7CisgICAgZm9yIChpPTA7IGk8bV9CdWRkeUxpc3QuR2V0U2l6ZSgpOyArK2kpIHsKKwlDU3RyaW5nIGVudHJ5OworCWVudHJ5LkZvcm1hdChSRUdfQlVERFlfWCwgaSk7CisJa2V5LlNldFZhbHVlKG1fQnVkZHlMaXN0LkdldEF0KGkpLCBlbnRyeSk7CisgICAgfQorCisgICAga2V5LkNsb3NlKCk7Cit9CisKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIENTZXR0aW5nc0RsZyBkaWFsb2cKKworCitDU2V0dGluZ3NEbGc6OkNTZXR0aW5nc0RsZyhDUG9ja2V0UEpTZXR0aW5ncyAmY2ZnLCBDV25kKiBwUGFyZW50KQorCTogQ0RpYWxvZyhDU2V0dGluZ3NEbGc6OklERCwgcFBhcmVudCksIG1fQ2ZnKGNmZykKK3sKKwkvL3t7QUZYX0RBVEFfSU5JVChDU2V0dGluZ3NEbGcpCisJbV9Eb21haW4gPSBfVCgiIik7CisJbV9JQ0UgPSBGQUxTRTsKKwltX1Bhc3N3ZCA9IF9UKCIiKTsKKwltX1BVQkxJU0ggPSBGQUxTRTsKKwltX1NSVFAgPSBGQUxTRTsKKwltX1NUVU4gPSBGQUxTRTsKKwltX1N0dW5TcnYgPSBfVCgiIik7CisJbV9Vc2VyID0gX1QoIiIpOworCW1fRG5zID0gX1QoIiIpOworCS8vfX1BRlhfREFUQV9JTklUCisKKwltX0RvbWFpbiAgICA9IG1fQ2ZnLm1fRG9tYWluOworCW1fSUNFCSAgICA9IG1fQ2ZnLm1fVXNlSWNlOworCW1fUGFzc3dkICAgID0gbV9DZmcubV9QYXNzd29yZDsKKwltX1BVQkxJU0ggICA9IG1fQ2ZnLm1fVXNlUHVibGlzaDsKKwltX1NSVFAJICAgID0gbV9DZmcubV9Vc2VTcnRwOworCW1fU1RVTgkgICAgPSBtX0NmZy5tX1VzZVN0dW47CisJbV9TdHVuU3J2ICAgPSBtX0NmZy5tX1N0dW5TcnY7CisJbV9Vc2VyCSAgICA9IG1fQ2ZnLm1fVXNlcjsKKwltX0RucwkgICAgPSBtX0NmZy5tX0ROUzsKK30KKworCit2b2lkIENTZXR0aW5nc0RsZzo6RG9EYXRhRXhjaGFuZ2UoQ0RhdGFFeGNoYW5nZSogcERYKQoreworCUNEaWFsb2c6OkRvRGF0YUV4Y2hhbmdlKHBEWCk7CisJLy97e0FGWF9EQVRBX01BUChDU2V0dGluZ3NEbGcpCisJRERYX1RleHQocERYLCBJRENfRE9NQUlOLCBtX0RvbWFpbik7CisJRERYX0NoZWNrKHBEWCwgSURDX0lDRSwgbV9JQ0UpOworCUREWF9UZXh0KHBEWCwgSURDX1BBU1NXRCwgbV9QYXNzd2QpOworCUREWF9DaGVjayhwRFgsIElEQ19QVUJMSVNILCBtX1BVQkxJU0gpOworCUREWF9DaGVjayhwRFgsIElEQ19TUlRQLCBtX1NSVFApOworCUREWF9DaGVjayhwRFgsIElEQ19TVFVOLCBtX1NUVU4pOworCUREWF9UZXh0KHBEWCwgSURDX1NUVU5fU1JWLCBtX1N0dW5TcnYpOworCUREWF9UZXh0KHBEWCwgSURDX1VTRVIsIG1fVXNlcik7CisJRERYX1RleHQocERYLCBJRENfRE5TLCBtX0Rucyk7CisJLy99fUFGWF9EQVRBX01BUAorfQorCisKK0JFR0lOX01FU1NBR0VfTUFQKENTZXR0aW5nc0RsZywgQ0RpYWxvZykKKwkvL3t7QUZYX01TR19NQVAoQ1NldHRpbmdzRGxnKQorCQkvLyBOT1RFOiB0aGUgQ2xhc3NXaXphcmQgd2lsbCBhZGQgbWVzc2FnZSBtYXAgbWFjcm9zIGhlcmUKKwkvL319QUZYX01TR19NQVAKK0VORF9NRVNTQUdFX01BUCgpCisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBDU2V0dGluZ3NEbGcgbWVzc2FnZSBoYW5kbGVycworCitpbnQgQ1NldHRpbmdzRGxnOjpEb01vZGFsKCkgCit7CisgICAgaW50IHJjID0gQ0RpYWxvZzo6RG9Nb2RhbCgpOwkKKworICAgIGlmIChyYyA9PSBJRE9LKSB7CisJbV9DZmcubV9Eb21haW4JICAgID0gbV9Eb21haW47CisJbV9DZmcubV9Vc2VJY2UJICAgID0gbV9JQ0U7CisJbV9DZmcubV9QYXNzd29yZCAgICA9IG1fUGFzc3dkOworCW1fQ2ZnLm1fVXNlUHVibGlzaCAgPSBtX1BVQkxJU0g7CisJbV9DZmcubV9Vc2VTcnRwCSAgICA9IG1fU1JUUDsKKwltX0NmZy5tX1VzZVN0dW4JICAgID0gbV9TVFVOOworCW1fQ2ZnLm1fU3R1blNydgkgICAgPSBtX1N0dW5TcnY7CisJbV9DZmcubV9Vc2VyCSAgICA9IG1fVXNlcjsKKwltX0NmZy5tX0ROUwkgICAgPSBtX0RuczsKKyAgICB9CisKKyAgICByZXR1cm4gcmM7Cit9CmRpZmYgLS1naXQgYS9wanNpcC1hcHBzL3NyYy9wb2NrZXRwai9TZXR0aW5nc0RsZy5oIGIvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovU2V0dGluZ3NEbGcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OGYwODkxCi0tLSAvZGV2L251bGwKKysrIGIvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovU2V0dGluZ3NEbGcuaApAQCAtMCwwICsxLDgyIEBACisjaWYgIWRlZmluZWQoQUZYX1NFVFRJTkdTRExHX0hfXzQ2RjE4RTZFX0Y0MTFfNEQ5RV9CRUU5XzYxOUQ4MEJDODFEQ19fSU5DTFVERURfKQorI2RlZmluZSBBRlhfU0VUVElOR1NETEdfSF9fNDZGMThFNkVfRjQxMV80RDlFX0JFRTlfNjE5RDgwQkM4MURDX19JTkNMVURFRF8KKworI2lmIF9NU0NfVkVSID4gMTAwMAorI3ByYWdtYSBvbmNlCisjZW5kaWYgLy8gX01TQ19WRVIgPiAxMDAwCisvLyBTZXR0aW5nc0RsZy5oIDogaGVhZGVyIGZpbGUKKy8vCisjaW5jbHVkZSA8QWZ4dGVtcGwuaD4KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIFNldHRpbmdzCitzdHJ1Y3QgQ1BvY2tldFBKU2V0dGluZ3MKK3sKKyAgICBDU3RyaW5nCW1fRG9tYWluOworICAgIENTdHJpbmcJbV9Vc2VyOworICAgIENTdHJpbmcJbV9QYXNzd29yZDsKKyAgICBib29sCW1fVXNlU3R1bjsKKyAgICBDU3RyaW5nCW1fU3R1blNydjsKKyAgICBib29sCW1fVXNlSWNlOworICAgIGJvb2wJbV9Vc2VTcnRwOworICAgIGJvb2wJbV9Vc2VQdWJsaXNoOworICAgIENTdHJpbmcJbV9ETlM7CisKKyAgICBDQXJyYXk8Q1N0cmluZyxDU3RyaW5nPiBtX0J1ZGR5TGlzdDsKKyAgICAKKyAgICAvLyBMb2FkIGZyb20gcmVnaXN0cnkKKyAgICB2b2lkICAgIExvYWRSZWdpc3RyeSgpOworICAgIAorICAgIC8vIFNhdmUgdG8gcmVnaXN0cnkKKyAgICB2b2lkICAgIFNhdmVSZWdpc3RyeSgpOworfTsKKworCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gQ1NldHRpbmdzRGxnIGRpYWxvZworCitjbGFzcyBDU2V0dGluZ3NEbGcgOiBwdWJsaWMgQ0RpYWxvZworeworLy8gQ29uc3RydWN0aW9uCitwdWJsaWM6CisJQ1NldHRpbmdzRGxnKENQb2NrZXRQSlNldHRpbmdzICYgY2ZnLCBDV25kKiBwUGFyZW50ID0gTlVMTCk7CisKKy8vIERpYWxvZyBEYXRhCisJLy97e0FGWF9EQVRBKENTZXR0aW5nc0RsZykKKwllbnVtIHsgSUREID0gSUREX1NFVFRJTkcgfTsKKwlDU3RyaW5nCW1fRG9tYWluOworCUJPT0wJbV9JQ0U7CisJQ1N0cmluZwltX1Bhc3N3ZDsKKwlCT09MCW1fUFVCTElTSDsKKwlCT09MCW1fU1JUUDsKKwlCT09MCW1fU1RVTjsKKwlDU3RyaW5nCW1fU3R1blNydjsKKwlDU3RyaW5nCW1fVXNlcjsKKwlDU3RyaW5nCW1fRG5zOworCS8vfX1BRlhfREFUQQorCisKKy8vIE92ZXJyaWRlcworCS8vIENsYXNzV2l6YXJkIGdlbmVyYXRlZCB2aXJ0dWFsIGZ1bmN0aW9uIG92ZXJyaWRlcworCS8ve3tBRlhfVklSVFVBTChDU2V0dGluZ3NEbGcpCisJcHVibGljOgorCXZpcnR1YWwgaW50IERvTW9kYWwoKTsKKwlwcm90ZWN0ZWQ6CisJdmlydHVhbCB2b2lkIERvRGF0YUV4Y2hhbmdlKENEYXRhRXhjaGFuZ2UqIHBEWCk7ICAgIC8vIEREWC9ERFYgc3VwcG9ydAorCS8vfX1BRlhfVklSVFVBTAorCisvLyBJbXBsZW1lbnRhdGlvbgorcHJvdGVjdGVkOgorCUNQb2NrZXRQSlNldHRpbmdzICYgbV9DZmc7CisKKwkvLyBHZW5lcmF0ZWQgbWVzc2FnZSBtYXAgZnVuY3Rpb25zCisJLy97e0FGWF9NU0coQ1NldHRpbmdzRGxnKQorCQkvLyBOT1RFOiB0aGUgQ2xhc3NXaXphcmQgd2lsbCBhZGQgbWVtYmVyIGZ1bmN0aW9ucyBoZXJlCisJLy99fUFGWF9NU0cKKwlERUNMQVJFX01FU1NBR0VfTUFQKCkKK307CisKKy8ve3tBRlhfSU5TRVJUX0xPQ0FUSU9OfX0KKy8vIE1pY3Jvc29mdCBWaXN1YWwgQysrIHdpbGwgaW5zZXJ0IGFkZGl0aW9uYWwgZGVjbGFyYXRpb25zIGltbWVkaWF0ZWx5IGJlZm9yZSB0aGUgcHJldmlvdXMgbGluZS4KKworI2VuZGlmIC8vICFkZWZpbmVkKEFGWF9TRVRUSU5HU0RMR19IX180NkYxOEU2RV9GNDExXzREOUVfQkVFOV82MTlEODBCQzgxRENfX0lOQ0xVREVEXykKZGlmZiAtLWdpdCBhL3Bqc2lwLWFwcHMvc3JjL3BvY2tldHBqL1N0ZEFmeC5jcHAgYi9wanNpcC1hcHBzL3NyYy9wb2NrZXRwai9TdGRBZnguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4Nzk0YTMKLS0tIC9kZXYvbnVsbAorKysgYi9wanNpcC1hcHBzL3NyYy9wb2NrZXRwai9TdGRBZnguY3BwCkBAIC0wLDAgKzEsNiBAQAorLy8gc3RkYWZ4LmNwcCA6IHNvdXJjZSBmaWxlIHRoYXQgaW5jbHVkZXMganVzdCB0aGUgc3RhbmRhcmQgaW5jbHVkZXMKKy8vCVBvY2tldFBKLnBjaCB3aWxsIGJlIHRoZSBwcmUtY29tcGlsZWQgaGVhZGVyCisvLwlzdGRhZngub2JqIHdpbGwgY29udGFpbiB0aGUgcHJlLWNvbXBpbGVkIHR5cGUgaW5mb3JtYXRpb24KKworI2luY2x1ZGUgInN0ZGFmeC5oIgorCmRpZmYgLS1naXQgYS9wanNpcC1hcHBzL3NyYy9wb2NrZXRwai9TdGRBZnguaCBiL3Bqc2lwLWFwcHMvc3JjL3BvY2tldHBqL1N0ZEFmeC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhZjgzMDkKLS0tIC9kZXYvbnVsbAorKysgYi9wanNpcC1hcHBzL3NyYy9wb2NrZXRwai9TdGRBZnguaApAQCAtMCwwICsxLDMxIEBACisvLyBzdGRhZnguaCA6IGluY2x1ZGUgZmlsZSBmb3Igc3RhbmRhcmQgc3lzdGVtIGluY2x1ZGUgZmlsZXMsCisvLyAgb3IgcHJvamVjdCBzcGVjaWZpYyBpbmNsdWRlIGZpbGVzIHRoYXQgYXJlIHVzZWQgZnJlcXVlbnRseSwgYnV0CisvLyAgICAgIGFyZSBjaGFuZ2VkIGluZnJlcXVlbnRseQorLy8KKworI2lmICFkZWZpbmVkKEFGWF9TVERBRlhfSF9fMjBCMDVDN0RfQjYzRV80RTVDX0IzQkJfRTc2QzZDOUU3MEI3X19JTkNMVURFRF8pCisjZGVmaW5lIEFGWF9TVERBRlhfSF9fMjBCMDVDN0RfQjYzRV80RTVDX0IzQkJfRTc2QzZDOUU3MEI3X19JTkNMVURFRF8KKworI2lmIF9NU0NfVkVSID49IDEwMDAKKyNwcmFnbWEgb25jZQorI2VuZGlmIC8vIF9NU0NfVkVSID49IDEwMDAKKworCisKKyNkZWZpbmUgVkNfRVhUUkFMRUFOCQkvLyBFeGNsdWRlIHJhcmVseS11c2VkIHN0dWZmIGZyb20gV2luZG93cyBoZWFkZXJzCisKKyNpbmNsdWRlIDxhZnh3aW4uaD4gICAgICAgICAvLyBNRkMgY29yZSBhbmQgc3RhbmRhcmQgY29tcG9uZW50cworI2luY2x1ZGUgPGFmeGV4dC5oPiAgICAgICAgIC8vIE1GQyBleHRlbnNpb25zCisKKyNpZiBkZWZpbmVkKF9BRlhETEwpCisjaW5jbHVkZSA8YWZ4ZHRjdGwuaD4JCS8vIE1GQyBzdXBwb3J0IGZvciBJbnRlcm5ldCBFeHBsb3JlciA0IENvbW1vbiBDb250cm9scworI2VuZGlmCisKKyNpZm5kZWYgX0FGWF9OT19BRlhDTU5fU1VQUE9SVAorI2luY2x1ZGUgPGFmeGNtbi5oPgkJCS8vIE1GQyBzdXBwb3J0IGZvciBXaW5kb3dzIENvbW1vbiBDb250cm9scworI2VuZGlmIC8vIF9BRlhfTk9fQUZYQ01OX1NVUFBPUlQKKworLy97e0FGWF9JTlNFUlRfTE9DQVRJT059fQorLy8gTWljcm9zb2Z0IGVNYmVkZGVkIFZpc3VhbCBDKysgd2lsbCBpbnNlcnQgYWRkaXRpb25hbCBkZWNsYXJhdGlvbnMgaW1tZWRpYXRlbHkgYmVmb3JlIHRoZSBwcmV2aW91cyBsaW5lLgorCisjZW5kaWYgLy8gIWRlZmluZWQoQUZYX1NUREFGWF9IX18yMEIwNUM3RF9CNjNFXzRFNUNfQjNCQl9FNzZDNkM5RTcwQjdfX0lOQ0xVREVEXykKZGlmZiAtLWdpdCBhL3Bqc2lwLWFwcHMvc3JjL3BvY2tldHBqL25ld3Jlcy5oIGIvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovbmV3cmVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzFjM2E0MwotLS0gL2Rldi9udWxsCisrKyBiL3Bqc2lwLWFwcHMvc3JjL3BvY2tldHBqL25ld3Jlcy5oCkBAIC0wLDAgKzEsMjggQEAKKyNpZm5kZWYgX19ORVdSRVNfSF9fCisjZGVmaW5lIF9fTkVXUkVTX0hfXworCisjZGVmaW5lICBTSE1FTlVCQVIgUkNEQVRBCisjaWYgIShkZWZpbmVkKF9XSU4zMl9XQ0VfUFNQQykgJiYgKF9XSU4zMl9XQ0UgPj0gMzAwKSkKKwkjdW5kZWYgSERTX0hPUlogIAorCSN1bmRlZiBIRFNfQlVUVE9OUyAKKwkjdW5kZWYgSERTX0hJRERFTiAKKworCSNpbmNsdWRlIDxjb21tY3RybC5oPgorCS8vIGZvciBNZW51QmFyCisJI2RlZmluZSBJX0lNQUdFTk9ORQkJKC0yKQorCSNkZWZpbmUgTk9NRU5VCQkJMHhGRkZGCisJI2RlZmluZSBJRFNfU0hORVcJCTEKKwkjZGVmaW5lIElETV9TSEFSRURORVcgICAgICAgIDEwCisJI2RlZmluZSBJRE1fU0hBUkVETkVXREVGQVVMVCAxMQorCisJLy8gZm9yIFRhYiBDb250cm9sCisJI2RlZmluZSBUQ1NfU0NST0xMT1BQT1NJVEUgICAgICAweDAwMDEgICAvLyBhc3N1bWVzIG11bHRpbGluZSB0YWIKKwkjZGVmaW5lIFRDU19CT1RUT00gICAgICAgICAgICAgIDB4MDAwMgorCSNkZWZpbmUgVENTX1JJR0hUICAgICAgICAgICAgICAgMHgwMDAyCisJI2RlZmluZSBUQ1NfVkVSVElDQUwgICAgICAgICAgICAweDAwODAKKwkjZGVmaW5lIFRDU19NVUxUSVNFTEVDVCAgICAgICAgIDB4MDAwNCAgLy8gYWxsb3cgbXVsdGktc2VsZWN0IGluIGJ1dHRvbiBtb2RlCisJI2RlZmluZSBUQ1NfRkxBVEJVVFRPTlMgICAgICAgICAweDAwMDgJCisjZW5kaWYgLy9fV0lOMzJfV0NFX1BTUEMKKworCisjZW5kaWYgLy9fX05FV1JFU19IX18KZGlmZiAtLWdpdCBhL3Bqc2lwLWFwcHMvc3JjL3BvY2tldHBqL3Jlcy9Qb2NrZXRQSi5pY28gYi9wanNpcC1hcHBzL3NyYy9wb2NrZXRwai9yZXMvUG9ja2V0UEouaWNvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxYTE4MmUKLS0tIC9kZXYvbnVsbAorKysgYi9wanNpcC1hcHBzL3NyYy9wb2NrZXRwai9yZXMvUG9ja2V0UEouaWNvCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Bqc2lwLWFwcHMvc3JjL3BvY2tldHBqL3Jlcy9Qb2NrZXRQSi5yYzIgYi9wanNpcC1hcHBzL3NyYy9wb2NrZXRwai9yZXMvUG9ja2V0UEoucmMyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwMDQ4YmEKLS0tIC9kZXYvbnVsbAorKysgYi9wanNpcC1hcHBzL3NyYy9wb2NrZXRwai9yZXMvUG9ja2V0UEoucmMyCkBAIC0wLDAgKzEsMTMgQEAKKy8vDQorLy8gUE9DS0VUUEouUkMyIC0gcmVzb3VyY2VzIE1pY3Jvc29mdCBlTWJlZGRlZCBWaXN1YWwgQysrIGRvZXMgbm90IGVkaXQgZGlyZWN0bHkNCisvLw0KKw0KKyNpZmRlZiBBUFNUVURJT19JTlZPS0VEDQorCSNlcnJvciB0aGlzIGZpbGUgaXMgbm90IGVkaXRhYmxlIGJ5IE1pY3Jvc29mdCBlTWJlZGRlZCBWaXN1YWwgQysrDQorI2VuZGlmIC8vQVBTVFVESU9fSU5WT0tFRA0KKw0KKw0KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQorLy8gQWRkIG1hbnVhbGx5IGVkaXRlZCByZXNvdXJjZXMgaGVyZS4uLg0KKw0KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQpkaWZmIC0tZ2l0IGEvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovcmVzL2FjdGlvbi5ibXAgYi9wanNpcC1hcHBzL3NyYy9wb2NrZXRwai9yZXMvYWN0aW9uLmJtcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYWM3MGZlCi0tLSAvZGV2L251bGwKKysrIGIvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovcmVzL2FjdGlvbi5ibXAKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovcmVzL2JsYW5rLmJtcCBiL3Bqc2lwLWFwcHMvc3JjL3BvY2tldHBqL3Jlcy9ibGFuay5ibXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDk1MjFjNAotLS0gL2Rldi9udWxsCisrKyBiL3Bqc2lwLWFwcHMvc3JjL3BvY2tldHBqL3Jlcy9ibGFuay5ibXAKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovcmVzL2ludmlzaWJsLmJtcCBiL3Bqc2lwLWFwcHMvc3JjL3BvY2tldHBqL3Jlcy9pbnZpc2libC5ibXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODgxOTQwNgotLS0gL2Rldi9udWxsCisrKyBiL3Bqc2lwLWFwcHMvc3JjL3BvY2tldHBqL3Jlcy9pbnZpc2libC5ibXAKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovcmVzL2ludmlzaWJsLmljbyBiL3Bqc2lwLWFwcHMvc3JjL3BvY2tldHBqL3Jlcy9pbnZpc2libC5pY28KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQwNDI2MQotLS0gL2Rldi9udWxsCisrKyBiL3Bqc2lwLWFwcHMvc3JjL3BvY2tldHBqL3Jlcy9pbnZpc2libC5pY28KQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovcmVzL29mZmxpbmUuYm1wIGIvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovcmVzL29mZmxpbmUuYm1wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmMTgxNjIKLS0tIC9kZXYvbnVsbAorKysgYi9wanNpcC1hcHBzL3NyYy9wb2NrZXRwai9yZXMvb2ZmbGluZS5ibXAKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovcmVzL29mZmxpbmUuaWNvIGIvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovcmVzL29mZmxpbmUuaWNvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwN2M2NjYKLS0tIC9kZXYvbnVsbAorKysgYi9wanNpcC1hcHBzL3NyYy9wb2NrZXRwai9yZXMvb2ZmbGluZS5pY28KQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovcmVzL29ubGluZS5ibXAgYi9wanNpcC1hcHBzL3NyYy9wb2NrZXRwai9yZXMvb25saW5lLmJtcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDg3NTU0Ci0tLSAvZGV2L251bGwKKysrIGIvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovcmVzL29ubGluZS5ibXAKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovcmVzL29ubGluZS5pY28gYi9wanNpcC1hcHBzL3NyYy9wb2NrZXRwai9yZXMvb25saW5lLmljbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOTk5YzJiCi0tLSAvZGV2L251bGwKKysrIGIvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovcmVzL29ubGluZS5pY28KQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvcGpzaXAtYXBwcy9zcmMvcG9ja2V0cGovcmVzb3VyY2UuaCBiL3Bqc2lwLWFwcHMvc3JjL3BvY2tldHBqL3Jlc291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGFmNTNlOAotLS0gL2Rldi9udWxsCisrKyBiL3Bqc2lwLWFwcHMvc3JjL3BvY2tldHBqL3Jlc291cmNlLmgKQEAgLTAsMCArMSw2NSBAQAorLy97e05PX0RFUEVOREVOQ0lFU319CisvLyBNaWNyb3NvZnQgZU1iZWRkZWQgVmlzdWFsIEMrKyBnZW5lcmF0ZWQgaW5jbHVkZSBmaWxlLgorLy8gVXNlZCBieSBQb2NrZXRQSi5yYworLy8KKyNkZWZpbmUgSUREX1BPQ0tFVFBKX0RJQUxPRyAgICAgICAgICAgICAxMDIKKyNkZWZpbmUgSURSX01BSU5GUkFNRSAgICAgICAgICAgICAgICAgICAxMjgKKyNkZWZpbmUgSURJX09OTElORSAgICAgICAgICAgICAgICAgICAgICAxMzEKKyNkZWZpbmUgSURJX09GRkxJTkUgICAgICAgICAgICAgICAgICAgICAxMzIKKyNkZWZpbmUgSURJX0lOVklTSUJMRSAgICAgICAgICAgICAgICAgICAxMzMKKyNkZWZpbmUgSURCX09OTElORSAgICAgICAgICAgICAgICAgICAgICAxMzUKKyNkZWZpbmUgSURCX09GRkxJTkUgICAgICAgICAgICAgICAgICAgICAxMzYKKyNkZWZpbmUgSURCX0lOVklTSUJMRSAgICAgICAgICAgICAgICAgICAxMzcKKyNkZWZpbmUgSURCX0FDVElPTiAgICAgICAgICAgICAgICAgICAgICAxMzgKKyNkZWZpbmUgSURSX0FDQ19NRU5VICAgICAgICAgICAgICAgICAgICAxMzkKKyNkZWZpbmUgSURSX1VSSV9NRU5VICAgICAgICAgICAgICAgICAgICAxNDAKKyNkZWZpbmUgSUREX1NFVFRJTkcgICAgICAgICAgICAgICAgICAgICAxNDEKKyNkZWZpbmUgSUREX1BPUFVQICAgICAgICAgICAgICAgICAgICAgICAxNDMKKyNkZWZpbmUgSURCX0JMQU5LICAgICAgICAgICAgICAgICAgICAgICAxNDQKKyNkZWZpbmUgSURDX0JUTl9BQ0MgICAgICAgICAgICAgICAgICAgICAxMDA2CisjZGVmaW5lIElEQ19CVE5fQUNUSU9OICAgICAgICAgICAgICAgICAgMTAwNworI2RlZmluZSBJRENfQUNDX0lEICAgICAgICAgICAgICAgICAgICAgIDEwMDgKKyNkZWZpbmUgSURDX0JVRERZX0xJU1QgICAgICAgICAgICAgICAgICAxMDA5CisjZGVmaW5lIElEQ19VUkwgICAgICAgICAgICAgICAgICAgICAgICAgMTAxMAorI2RlZmluZSBJRENfRE9NQUlOICAgICAgICAgICAgICAgICAgICAgIDEwMTEKKyNkZWZpbmUgSURDX1VTRVIgICAgICAgICAgICAgICAgICAgICAgICAxMDEyCisjZGVmaW5lIElEQ19QQVNTV0QgICAgICAgICAgICAgICAgICAgICAgMTAxMworI2RlZmluZSBJRENfU1RVTiAgICAgICAgICAgICAgICAgICAgICAgIDEwMTQKKyNkZWZpbmUgSURDX1NUVU5fU1JWICAgICAgICAgICAgICAgICAgICAxMDE1CisjZGVmaW5lIElEQ19JQ0UgICAgICAgICAgICAgICAgICAgICAgICAgMTAxNgorI2RlZmluZSBJRENfU1JUUCAgICAgICAgICAgICAgICAgICAgICAgIDEwMTcKKyNkZWZpbmUgSURDX1RJVExFMSAgICAgICAgICAgICAgICAgICAgICAxMDE3CisjZGVmaW5lIElEQ19QVUJMSVNIICAgICAgICAgICAgICAgICAgICAgMTAxOAorI2RlZmluZSBJRENfVElUTEUyICAgICAgICAgICAgICAgICAgICAgIDEwMTgKKyNkZWZpbmUgSURDX0ROUyAgICAgICAgICAgICAgICAgICAgICAgICAxMDE5CisjZGVmaW5lIElEQ19USVRMRTMgICAgICAgICAgICAgICAgICAgICAgMTAyMAorI2RlZmluZSBJRENfQlVUVE9OMSAgICAgICAgICAgICAgICAgICAgIDEwMjEKKyNkZWZpbmUgSURDX0JVVFRPTjIgICAgICAgICAgICAgICAgICAgICAxMDIyCisjZGVmaW5lIElEU19DQVBfT05MSU5FICAgICAgICAgICAgICAgICAgMzI3NzIKKyNkZWZpbmUgSURTX0NBUF9PRkZMSU5FICAgICAgICAgICAgICAgICAzMjc3NAorI2RlZmluZSBJRFNfQ0FQX0lOVklTSUJMRSAgICAgICAgICAgICAgIDMyNzc2CisjZGVmaW5lIElEQ19PTkxJTkUgICAgICAgICAgICAgICAgICAgICAgMzI3NzcKKyNkZWZpbmUgSURDX0FDQ19PTkxJTkUgICAgICAgICAgICAgICAgICAzMjc3NworI2RlZmluZSBJRFNfQ0FQX01FTlVJVEVNMzI3ODMgICAgICAgICAgIDMyNzg0CisjZGVmaW5lIElEQ19NRU5VMSAgICAgICAgICAgICAgICAgICAgICAgMzI3ODUKKyNkZWZpbmUgSURTX0NBUF9NRU5VSVRFTTMyNzg2ICAgICAgICAgICAzMjc4NworI2RlZmluZSBJRENfU0VUVElOR1MgICAgICAgICAgICAgICAgICAgIDMyNzg4CisjZGVmaW5lIElEQ19BQ0NfU0VUVElOR1MgICAgICAgICAgICAgICAgMzI3ODgKKyNkZWZpbmUgSURDX01FTlUyICAgICAgICAgICAgICAgICAgICAgICAzMjc4OQorI2RlZmluZSBJRFNfQ0FQX01FTlVJVEVNMzI3OTAgICAgICAgICAgIDMyNzkxCisjZGVmaW5lIElEQ19VUklfQ0FMTCAgICAgICAgICAgICAgICAgICAgMzI3OTIKKyNkZWZpbmUgSURDX1VSSV9BRERfQlVERFkgICAgICAgICAgICAgICAzMjc5MworI2RlZmluZSBJRF9VUklfREVMX0JVRERZICAgICAgICAgICAgICAgIDMyNzk0CisjZGVmaW5lIElEQ19VUklfREVMX0JVRERZICAgICAgICAgICAgICAgMzI3OTQKKyNkZWZpbmUgSURDX0FDQ19JTlZJU0lCTEUgICAgICAgICAgICAgICAzMjc5NQorCisvLyBOZXh0IGRlZmF1bHQgdmFsdWVzIGZvciBuZXcgb2JqZWN0cworLy8gCisjaWZkZWYgQVBTVFVESU9fSU5WT0tFRAorI2lmbmRlZiBBUFNUVURJT19SRUFET05MWV9TWU1CT0xTCisjZGVmaW5lIF9BUFNfTkVYVF9SRVNPVVJDRV9WQUxVRSAgICAgICAgMTQ1CisjZGVmaW5lIF9BUFNfTkVYVF9DT01NQU5EX1ZBTFVFICAgICAgICAgMzI3OTYKKyNkZWZpbmUgX0FQU19ORVhUX0NPTlRST0xfVkFMVUUgICAgICAgICAxMDIzCisjZGVmaW5lIF9BUFNfTkVYVF9TWU1FRF9WQUxVRSAgICAgICAgICAgMTAxCisjZW5kaWYKKyNlbmRpZgo=